FBSDKLog: нельзя использовать приложение Facebook или Safari для авторизации, fb **** не зарегистрирован как URL-схема

Я хочу иметь Facebook app native dialog login (https://developers.facebook.com/docs/technical-guides/iossdk/login/#fbnative).

В консоли я получаю следующее сообщение при нажатии на FBLoginView:

FBSDKLog: Cannot use the Facebook app or Safari to authorize, fb**** is not registered as a URL Scheme

Но я сделал точно так же, как здесь: Не удалось открыть активный сеанс после обновления Facebook SDK до 3.5

Ответ 1

В myapp-Info.plist я переименовал ключ URL Schemes в CFBundleURLSchemes:

До:

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>URL Schemes</key>
        <array>
            <string>fb***</string>
        </array>
    </dict>
</array>

После:

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fb***</string>
        </array>
    </dict>
</array>

Разница не видна в XCode, потому что CFBundleURLSchemes имеет псевдоним с URL Schemes.

Как следствие, вам нужно вручную отредактировать myapp-Info.plist.

Ответ 2

Проблема заключается в файле plist, так как ему нужны разные настройки, после чего он был опубликован в официальном видео в Facebook и в статьях для Facebook SDK 3.5.x.

Если вы хотите использовать 2 или более приложения с одним и тем же Facebook AppID, что полезно для всех видов деятельности, сообщения будут накапливаться под одним и тем же видом Facebook для всех версий, таких как premium или lite, но в этом случае у вас есть как-то решить, что Facebook перезвонит (схема URL) правильное приложение, откуда пришел пользователь, и пользователь может продолжить использовать наше приложение, когда закончите с деятельностью Facebook, например, сообщение и т.д.

Таким образом, мы должны использовать типы URL и схемы URL в Xcode и в настройках разработчика Facebook, как вы можете видеть на рисунках ниже:

UPDATE 2015

Я обновил скриншоты, чтобы отразить новые настройки Facebook и Xcode:

Xcode 6

Как вы можете видеть, вам нужно использовать FacebookAppID с прикрепленным суффиксом URL-схемы и тем же именем FacebookDisplayName НО, вам нужно использовать префикс "fb" в строке URL-адресов → Схемы URL-адресов и используйте имя FacebookDisplayName в строке Identifier, см. ниже. Это обеспечит, что Facebook вернет правильное приложение (Lite или премиум в этом примере), но все сообщения и т.д. Перейдут в одно приложение Facebook.

enter image description here

Facebook

Идентификатор iPhone Store предназначен для премиум-версии, так как мы хотели бы маршрутизировать пользователя к платной версии!

enter image description here

Ответ 3

В моем приложении ошибка возникла из-за неправильного случая ключей свойств.

Они должны быть:

Типы URL (строчные буквы T)

Схемы URL (верхний регистр S)

Ответ 4

Нашли решение для нас:

У нас было две схемы URL. Один для нашего приложения "ourapp://" и один для facebook "fb123456789".

Как оказалось, URL-адрес facebook должен быть номером один.

Ответ 5

Я исправил эту проблему, удалив пространство, которое у меня было между fb и моим идентификатором приложения в файле info.plist

Ответ 6

У меня была та же проблема (Facebook SDK 3.5.1)

Моя схема URL для Facebook была включена в пункт 1. Проблема исправлена, переместив ее в пункт 0.

Ответ 8

Моя проблема заключалась в том, что я имел FBAppID, вставленный в 3 раза, и это было очевидно только при просмотре файла .plist с помощью текстового редактора.

Ответ 9

Я использовал Facebook SDK v.3 или более, я нашел проблему с открытым входом в Facebook. когда я нажимаю кнопку "Вход", а затем не открываю всплывающее окно для входа пользователя.

Итак, ниже приведено решение этой проблемы:

Когда я меняю дату и время системы с предыдущего на текущее и снова проверяю приложение, и оно отлично работает. поэтому, пожалуйста, проверьте дату и время устройства.

Ответ 10

У меня такая же проблема. Итак, я пытаюсь копировать элемент 0: fb1234567890 в пункт 1: fb1234567890

Схемы URL-адресов Array имеют 2 элемента: item 0, item 1 Все в порядке. надеюсь, что это хорошо для вас!