Facebook SDK iOS приглашает пользователя без FBWebDialogs

Я хочу получить список моих друзей из Facebook, которые не являются пользователями моего приложения, и иметь возможность пригласить их.

С помощью FBWebDialogs Я могу выбирать пользователей, но мне интересно, как Foursquare это сделал? Скриншот:

5 ответов

Решение

Есть вариант frictionless requests,
На сайте разработчиков Facebook они упоминаются в разделе Invites and Requests

Мы затронули сценарий, когда пользователи обмениваются запросами туда-сюда. Если этот сценарий типичен для вашей игры, пользователь может испытывать затруднения, заставляя его проходить диалог запроса каждый раз, когда он хочет отправить запрос. Решение для этого - запросы без трения.

Запросы без трения позволяют пользователям отправлять запросы друзьям из приложения, не нажимая на всплывающее диалоговое окно подтверждения. Отправляя запрос другу, пользователь может разрешить приложению отправлять последующие запросы тому же другу без другого диалога. Это упрощает процесс обмена с друзьями.

Для получения дополнительной информации см. Facebook Приглашения и Запросы

Вы задаете два вопроса здесь:

Как пригласить друзей на Facebook без веб-диалогов?

К сожалению, веб-диалоги, на которые вы ссылаетесь, - лучший способ отправить приглашения друзьям. Было время, когда нам приходилось прибегать к уродливым хакерам, чтобы получить эту функциональность в приложениях. Facebook добавил эту функциональность в iOS SDK после того, как разработчики создали отчеты об ошибках и были буквально за ними.

Получить список друзей, которые не используют приложение и пригласить их

Foursquare IMO не использует API запросов. Что они делают, когда кто-то связывает свою учетную запись Facebook с их учетной записью Foursquare, они отмечают друзей пользователей, которые используют / не используют приложение. Это возможно, если пользователь предоставляет разрешения для приложения.

Затем на экране приглашения они просто создают UITableView со списком друзей, которые, по их мнению, не используют приложение. Когда вы нажмете Пригласить, они просто отправят приглашение по электронной почте, а не запрос Facebook, на который вы ссылаетесь.

Я думаю, что FourSquare синхронизирует список друзей пользователя (идентификаторы друзей) со своим собственным сервером. Затем, после того как они проверят его, создайте пользовательский интерфейс, такой как снимок экрана, которым вы поделились.

Я изучал это некоторое время, и основное решение, которое я нашел, - это запросы без трения, как отметил Рахул Патель. Вы можете сделать прямой запрос к графическому API и посмотреть, у кого установлено ваше приложение.

Оттуда вы можете довольно легко реализовать любой вид фильтрации. Например, используя элемент управления Friend Picker и реализуя метод friendPickerViewController:shouldIncludeUser: и проверяет список идентификаторов facebook, которых нет в приложении, которое вы кэшируете где-то еще в вашем приложении, и активно обновляете его (например, в простой базовой модели данных, которая обновляется при appDidFinishLaunching), возвращая no, если пользователь не отображается, Это позволит пользователям выбирать только пользователей, которых нет в приложении, и тогда вы можете отправить им запрос под капот с беспроблемными запросами.

Однако я считаю, что не стоит спамить людей, по крайней мере, не позволяя им проверять имена своих друзей или видеть, кто они.

Возможно, я не правильно понял вопрос, но из того, что я знаю после того, как вы нажмете кнопку приглашения на Foursquare, появится диалог приглашения на Facebook (apprequest).

В общем, этот диалог позволит вам выбрать друзей, если вы не указали идентификаторы друзей перед их представлением, или покажет вам выбранных друзей, как в примере с Foursquare. Существует API для получения друзей из FB, так что ваш сервер может проверить, что у вас уже есть приложение...

Другие вопросы по тегам