Для устройств — Вход через Facebook — Документация
Если вам нужна помощь для вашего портала Facebook , посетите Справочный центр портала.
Чтобы ввести свой код Facebook для устройств , чтобы войти в свой смарт-телевизор, камеру, принтер и другие устройства, посетите страницу Facebook для устройств.
Реализовать вход через Facebook для устройств, чтобы люди могли входить в ваше приложение или службу со своей учетной записью Facebook. Эта функция позволяет людям входить в систему на устройствах с ограниченными возможностями ввода или отображения, таких как смарт-телевизоры, цифровые фоторамки или устройства Интернета вещей.
При входе в систему ваше устройство показывает буквенно-цифровой код и предлагает людям ввести его на веб-странице на своем настольном ПК или смартфоне. Затем люди, использующие ваше приложение или службу, могут предоставлять разрешения. После того как ваше приложение получит разрешения, устройство получит токен доступа, который ваше приложение использует для отправки запросов API Graph для идентификации человека и получения информации для персонализации его работы с устройством.
Если вы создаете ТВ-приложение для Apple TV, Android TV или Fire TV, вам следует использовать Facebook SDK для tvOS или Facebook SDK для Android.
В этом руководстве описывается ручная интеграция входа на устройство без использования вышеуказанных SDK.
- Пользовательский опыт
- Реализовать вход для устройств
- Поиск и устранение неисправностей
В этих рекомендациях описывается, как спроектировать понятный, безопасный и согласованный процесс входа в систему на разных устройствах и в службах.
1. Призыв к действию
Сначала подумайте, где в вашем пользовательском опыте вы хотите попросить людей войти в систему или подключиться к Facebook. Для некоторых устройств это произойдет сразу, а для других это может произойти позже.
Чтобы обеспечить наиболее удобный, последовательный и надежный пользовательский интерфейс, спроектируйте кнопку, максимально похожую на официальную кнопку входа в Facebook.
С точки зрения визуального дизайна это означает, что вы должны
- Пометить кнопку «Войти через Facebook» или «Подключиться к Facebook».
- Используйте белый цвет и официальный синий цвет Facebook: #1877F2.
- Если ваше устройство поддерживает графический дисплей, вы также можете использовать официальный логотип «f». Согласно правилам использования бренда Facebook, логотип всегда должен быть либо белым, либо синим (#1877F2).
При необходимости опишите преимущества входа в систему. Например, «узнайте, что смотрят ваши друзья» или «посмотрите фотографии из ваших альбомов Facebook».
2. Отобразите код -action, ваше устройство выполняет вызов API Facebook, который возвращает код
В своем интерфейсе сообщите людям, что им нужно посетить веб-сайт, и введите код со следующим сообщением: «Далее посетите facebook.com/device ( http://facebook.com/device) на компьютере или смартфоне и введите этот код». Отобразите полный код, который вы получили от API входа в систему Facebook. Код может содержать от 6 до 12 символов.
Вы можете включить кнопку Закрыть
или Отмена
, чтобы люди могли отменить процесс входа в систему устройства. Это должно вернуть их на начальный экран входа в систему.
Когда код отображается на экране, ваше устройство опрашивает API входа в устройство, чтобы узнать, авторизовал ли кто-то ваше приложение. Через несколько минут, если они не ввели свой код, API входа устройства возвращает ошибку code_expired
. Когда ваше устройство получает эту ошибку, вы должны отменить процесс входа в систему, и интерфейс должен отображать призыв к действию.
QR-коды также могут быть сгенерированы с кодом пользователя, встроенным в URL-адрес. Это делается путем добавления параметра user_code
к URL-адресу:
https://www.facebook.com/device?user_code=
3. Авторизация
Это поток, который люди видят, когда они переходят на facebook.com/device в своем настольном или мобильном браузере. Сначала они видят текстовое поле, в которое они могут ввести свой код:
После того, как они введут свой код и нажмут Продолжить
они могут выбрать разрешения, которые они хотят предоставить:
Чтобы люди знали, что их процесс входа в систему прошел успешно, они увидят подтверждающее сообщение:
4.
Подтвердить успешный вход в системуВ интерфейсе вашего устройства вы также должны отобразить подтверждающее сообщение . В идеале это должно включать имя человека и, если возможно, фотографию его профиля в Facebook.
Отображать это подтверждение на вашем устройстве, пока человек не нажмет кнопку Продолжить
. Кому-то, возможно, придется ввести код на компьютер в другом месте, поэтому им может потребоваться время, чтобы вернуться к вашему устройству и увидеть подтверждение, прежде чем продолжить.
После того, как человек нажмет Продолжить
, ваше устройство сможет показать отличный персонализированный опыт.
5. Выйти или отключиться
Люди должны иметь возможность выйти из вашего устройства, и ваше устройство не должно сохранять их соединение с Facebook. Для этого укажите параметр Выйти из Facebook
или Отключиться от Facebook
в меню вашего устройства.
Когда кто-то выбирает эту опцию, ваше устройство должно удалить сохраненный токен доступа из своей памяти. Если вы храните токен доступа в базе данных или облачном хранилище, вы также должны удалить его оттуда. Вам не нужно делать вызов API, чтобы аннулировать токен доступа.
После того, как кто-то выйдет из системы, на вашем устройстве должен отобразиться первоначальный призыв к действию на шаге 1.
Реализовать вход для устройств
Вход через Facebook для устройств предназначен для устройств, которые напрямую выполняют HTTP-вызовы через Интернет. Ниже приведены вызовы API и ответы, которые может сделать ваше устройство.
1. Включите вход для устройств
Загрузите панель управления вашего приложения и измените Продукт > Вход через Facebook > Настройки > Вход с устройств на «Да».
2. Сгенерировать код
Подключиться к Facebook
или Войти с призывом к действию Facebook
, ваше устройство должно отправить HTTP POST на:POST https://graph.facebook.com/v2.6 /устройство/логин access_token=scope= // например. public_profile,user_likes redirect_uri=
Параметр scope является необязательным и должен содержать разделенный запятыми список разрешений на вход, которые утверждены для использования при проверке входа.
CLIENT_TOKEN
находится в настройках вашего приложения -> Дополнительно и должен быть объединен с идентификатором вашего приложения (разделенный вертикальной чертой, |
) для формирования полного access_token
.
redirect_uri
является необязательным параметром. Когда вы указываете URL-адрес, человек будет перенаправлен на URL-адрес после успешного завершения входа в систему. Это позволяет вам авторизовать человека на веб-сайте вашего приложения для дополнительного управления учетной записью. Этот URL-адрес должен быть действительным URL-адресом перенаправления OAuth, настроенным в настройках вашего приложения ->
{ "код": "92a2b2e351f2b0b3503b2de251132f47", "код_пользователя": "A1NWZ9", "verification_uri": "https://www. facebook.com/device", "expires_in": 420, "интервал": 5 }
Этот ответ означает:
- Показать строку « A1NWZ9 » на вашем устройстве
- Скажите человеку перейти на «facebook.com/device» и ввести этот код
- Срок действия кода истекает через 420 секунд. Вы должны отменить процесс входа в систему после этого времени, если вы не получили токен доступа
- Ваше устройство должно опрашивать API входа в устройство каждые 5 секунд, чтобы убедиться, что авторизация прошла успешно.
3. Отобразить код
Ваше устройство должно отображать user_code
и предлагать людям посетить Verification_uri
, например, facebook.com/device на своих ПК или смартфонах. См. Пользовательский опыт.
4. Опрос авторизации
Ваше устройство должно опросить API входа устройства, чтобы узнать, успешно ли пользователь авторизовал ваше приложение. Вы должны сделать это в с интервалом
в ответ на ваш звонок на шаге 1, то есть каждые 5 секунд. Ваше устройство должно отправить запрос на:
POST https://graph.facebook.com/v2.6/device/login_status access_token=code= // например. "92a2b2e351f2b0b3503b2de251132f47"
Ответ на этот вызов API зависит от того, где кто-то находится в потоке авторизации. Вы получите либо токен доступа, либо объект ошибки с определенным субкодом для анализа:
Субкод ошибки | Пример ответа | Значение |
---|---|---|
| | Пользователь успешно авторизовал устройство. Теперь устройство может использовать значение |
| | Пользователь еще не авторизовал ваше приложение. Продолжить опрос со скоростью, указанной в ответе на шаге 1. |
| | Устройство слишком часто выполняет опрос. Замедлить опрос до интервала, указанного в первом вызове API. |
| | Срок действия кода устройства истек. Отмените процесс входа в устройство и верните пользователя на начальный экран. |
5. Подтвердите успешный вход в систему
Когда вы получите токен доступа, человек успешно авторизует ваше приложение. Вы должны сохранить этот токен доступа на устройстве.
Чтобы люди знали, что процесс входа в систему прошел успешно, ваше устройство должно отображать их имя и, если доступно, изображение профиля, пока они не нажмут Продолжить
. Чтобы получить имя человека и изображение профиля, ваше устройство должно сделать стандартный вызов Graph API:
GET https://graph.facebook.com/v2.3/me? поля=имя,картинка& access_token=
Вы получаете ответ в виде:
{ "имя": "Джон Доу", "картина": { "данные": { "is_silhouette": ложь, "url": "https://fbcdn.akamaihd.net/hmac...ile.jpg" } }, "id": "2023462875238472" }
Отображать имя и изображение профиля человека, пока он не нажмет Продолжить
на вашем устройстве.
6. Сохранение токенов доступа
Ваше устройство должно сохранять токен доступа, чтобы делать другие запросы к Graph API.
Маркеры доступа для входа в устройство могут быть действительны до 60 дней, но могут быть недействительными в ряде сценариев. Например, когда человек меняет свой пароль Facebook, его токен доступа становится недействительным.
Если токен недействителен, ваше устройство должно удалить токен из своей памяти. Человеку, использующему ваше устройство, необходимо снова выполнить процедуру входа в систему с шага 1, чтобы получить новый действительный токен.
Устранение неполадок
Могу ли я выполнять запросы потоков устройств через HTTP?
Для OAuth 2 требуется TLS/HTTPS.
Можно ли выполнять запросы потоков устройств с помощью метода GET?
Все запросы потоков устройств должны быть запросами POST
.
Как обновить токен доступа для входа на устройство?
Маркеры доступа для входа в устройство могут быть действительны до 60 дней.
Если токен недействителен, ваше устройство должно удалить токен из своей памяти. Человеку, использующему ваше устройство, необходимо снова выполнить процесс входа в систему, описанный здесь в шаге 1, чтобы получить новый действительный токен.
Дополнительные сведения об обновлении токенов см. в разделе Токены доступа.
Я получаю сообщение об ошибке Invalid API method
при выполнении запроса POST, что не так?
Если вы делаете запрос POST и получаете сообщение об ошибке, подобное этому:
{"error":{"message":"Invalid API method","type":"OAuthException","code":3}}
Возможно, вам потребуется включить «Вход с устройств» в вашем приложении.
Загрузите панель управления своего приложения и установите для параметра Продукт > Вход через Facebook > Настройки > Вход с устройств значение «Да».
Токен доступа к моему устройству недействителен. Что мне делать?
Если ваш токен доступа недействителен, ваше устройство должно удалить токен из своей памяти и получить новый токен. Человеку, использующему ваше устройство, необходимо снова выполнить процесс входа в систему, описанный здесь в шаге 1, чтобы получить новый действительный токен.
Устройства — Общий доступ — Документация
Эта конечная точка устарела 2 ноября 2020 г.
С помощью общего доступа для устройств люди могут легко обмениваться контентом с устройств на Facebook. Сюда входят телевизоры Smart TV, цифровые фоторамки или устройства Интернета вещей.
При совместном использовании устройство показывает буквенно-цифровой код и предлагает людям ввести его на веб-странице на настольном ПК или смартфоне. Люди, использующие ваше приложение или службу, могут затем делиться контентом на Facebook с помощью диалогового окна общего доступа, связанного с кодом.
Если вы создаете приложение для устройств Apple TV или Android, вам следует использовать наш SDK для tvOS или SDK для Android соответственно.
В этом руководстве описывается следующее:
- Взаимодействие с пользователем
- Реализовать общий доступ для устройств
- Поиск и устранение неисправностей
1.
Призыв к действиюСначала подумайте, где в вашем пользовательском опыте вы хотите попросить людей поделиться контентом на Facebook. Чтобы обеспечить наилучшие впечатления, сделайте кнопку максимально похожей на официальную кнопку «Поделиться» в Facebook. Как правило, кнопка должна быть рядом с контентом, которым нужно поделиться.
С точки зрения визуального дизайна это означает, что вы должны
- Пометить кнопку «Поделиться» или «Поделиться на Facebook».
- Используйте белый цвет и официальный синий цвет Facebook: #3B5998.
- Если ваше устройство поддерживает графический дисплей, вы также можете использовать официальный логотип «f». Согласно правилам бренда Facebook, логотип всегда должен быть либо белым, либо синим (#3B5998).
2. Отображение кода
Когда кто-то нажимает на призыв к действию, ваше устройство выполняет вызов API Facebook, который возвращает код.
В своем интерфейсе скажите людям, что им нужно посетить веб-сайт, и введите код со следующим сообщением: «Далее посетите facebook. com/device (http://facebook.com/device) на своем компьютере или смартфоне и введите этот код». Отобразите полный код, полученный от Facebook Device Share API. Длина кода составляет от 6 до 12 символов.
Добавьте кнопку Закрыть
или Готово
, чтобы люди могли завершить процесс совместного использования устройств.
3. Обмен
Это поток, который люди видят, когда они заходят на facebook.com/device в своем настольном или мобильном браузере. Сначала они видят текстовое поле, в котором они могут ввести свой код:
После того, как они введут свой код и нажмут Продолжить
, им будет представлен диалог «Поделиться»:
Чтобы люди знали, что их обмен прошел успешно, они увидят подтверждающее сообщение. :
Реализовать общий доступ для устройств
Общий доступ Facebook для устройств предназначен для устройств, которые могут выполнять HTTP-вызовы через Интернет. Ниже приведены вызовы API и ответы, которые может сделать ваше устройство.
1. Включите вход для устройств
Загрузите панель управления вашего приложения и измените «Настройки» > «Дополнительно» > «Настройки OAuth» > «Вход с устройств» на «Да».
2. Сгенерируйте код
Когда человек нажимает призыв к действию Поделиться
, ваше устройство должно отправить HTTP POST на:
ПУБЛИКАЦИЯ https://graph.facebook.com/device/share access_token=href=
CLIENT_TOKEN
находится в настройках вашего приложения -> Дополнительно и должен быть объединен с идентификатором вашего приложения (разделенный вертикальной чертой, |
), чтобы сформировать полный access_token
.
API также поддерживает action_type
и action_properties
вместо href
, если вы хотите поделиться историей Open Graph (аналогично действиям Open Graph в диалоговом окне Share).
API также поддерживает параметры quote
и hashtag
(аналогично параметрам диалогового окна «Поделиться»).