Тип приложения Facebook: какое выбрать для мобильных устройств и Интернета?

В настройках приложения Facebook ☞ Дополнительно ☞ Аутентификация я могу выбрать «Интернет» или «Родной/Рабочий стол» в качестве типа приложения. В информационном пузыре написано:

Выбирайте Native/Desktop только в том случае, если вы являетесь родным приложением iOS или Android, устройством или настольным приложением.

На самом деле я ни один из них, но мое приложение является родным приложением iOS, а также вкладкой страницы Facebook.
Вопрос: Какой тип приложения мне выбрать?


Я провел небольшое исследование и нашел следующее в Руководстве по Android на Facebook ( в разделе «Устранение неполадок»):

  • Тип приложения: веб-приложение или нативное/настольное. Имеет ли это значение?: Нет, не имеет значения. Однако для вашего приложения рекомендуется использовать тип «Родной/Рабочий стол».

Что означает это не имеет значения? Это не имеет смысла для меня. Почему тогда у меня должен быть выбор?

Я провел дополнительное исследование SO и нашел это утверждение от @Igy (инженер поддержки разработчиков в Facebook):

Если для типа приложения установлено значение «Родной/рабочий», предполагается, что вы распространили секретный ключ приложения с двоичным файлом, и, таким образом, токен доступа к приложению не является доверенным (и «getAccessToken» в PHP SDK будет работать только тогда, когда реальные пользователи регистрируются в, он не может вернуться к токену приложения)

Наконец, я нашел это в документации Facebook:

Примечание. Приложения, настроенные как собственные или настольные приложения, не смогут выполнять вызовы API, для которых требуется приложение access_token.

Мне нужно делать вызовы API, для которых требуется токен доступа из моего приложения на вкладке страницы, поэтому мой вывод состоит в том, чтобы выбрать «Веб» в качестве типа приложения, хотя у меня есть собственное приложение iOS, использующее тот же идентификатор приложения, что и вкладка страницы приложение. Но будут ли у этого какие-либо недостатки в приложении для iOS?


person borisdiakur    schedule 23.07.2012    source источник


Ответы (1)


TL;DR: используйте «веб», если вы не помещаете секрет приложения в двоичный файл iOS/Android.

Основное отличие (а также причина, по которой он говорит «это не имеет значения», а также дает рекомендацию) заключается в том, что если вы выбираете режим «собственный/рабочий стол», предполагается, что вы распространяете двоичный файл приложения со встроенным секретом приложения и секрет приложения считается ненадежным.

В этой конфигурации вызовы API, использующие секрет приложения (например, создание тестовых пользователей, вызовы API от имени самого приложения, такие как изменение настроек приложения, публикация достижений и т. д.), не будут работать.

Если вашему приложению не нужно использовать секрет приложения / токен доступа к приложению, установка для него значения Native/Desktop несколько повышает безопасность, поскольку для вашего приложения на один вектор атаки меньше.

Если вы распространяете секрет приложения со своим кодом, вы ДОЛЖНЫ использовать эту опцию, иначе пользователи могут легко определить секрет приложения и захватить само приложение.

person Igy    schedule 23.07.2012