Подтвердить что ты не робот

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

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

Используя FBWebDialogs, я могу выбрать пользователей, но мне интересно, как это сделал foursquare? Снимок экрана:

4b9b3361

Ответ 1

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

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

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

Подробнее см. Facebook-приглашения и запросы

Ответ 2

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

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

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

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

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

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

Ответ 3

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

Ответ 4

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

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

Ответ 5

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

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

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