Плагин Facebook PhoneGap/Cordova 2.2.0 В IOS FB.init не работает

Я разрабатываю приложение PhoneGap 2.2.0/IOS, и мне нужно использовать плагин FaceBook. Я следовал процессу установки, как описано в GIT, когда я использую «простой» образец из папки примера, я получаю диалоговое окно готовности устройства, которое говорит мне чтобы поместить мой appID на место, я сделал это, затем я нажимаю OK, и IOS выдает приложение с этой ошибкой:

'com.facebook.sdk:InvalidOperationException', reason: 'FBSession: No AppID provided; either pass an AppID to init, or add a string valued key with the appropriate id named FacebookAppID to the bundle *.plist'

и послушайте, это мой FB.init

    document.addEventListener('deviceready', function() {

                              try {
                              alert('Device is ready! Make sure you set your app_id below this alert.');
                              FB.init({ appId: "fb245065455620705", nativeInterface: CDV.FB, useCachedDialogs: false });
                              document.getElementById('data').innerHTML = "";
                              } catch (e) {
                              alert(e);
                              }
                              }, false);

Это записи, добавленные в мой файл plist

<key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLName</key>
            <string>com.mdsitg.amisrael</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>fb245065455620705</string>
            </array>
        </dict>
    </array>

любая помощь приветствуется!


person Shimon Wiener    schedule 13.11.2012    source источник


Ответы (3)


Ваша проблема с этой строкой

FB.init({ appId: "fb245065455620705", nativeInterface: CDV.FB, useCachedDialogs: false });

Должен быть:

FB.init({ appId: "245065455620705", nativeInterface: CDV.FB, useCachedDialogs: false });

Обратите внимание, что «fb» не должен быть частью идентификатора приложения.

person C Abernathy    schedule 14.11.2012
comment
Это была моя первая попытка, я удалил ее и все равно получаю тот же результат, знаете ли вы хороший образец, готовый к использованию проект для ios, я борюсь с этой проблемой уже 4 дня, но безуспешно. - person Shimon Wiener; 15.11.2012
comment
как видите, я нашел свою проблему, и ваше замечание было правильным, я не предоставил весь plist, поэтому вы не могли видеть все проблемы, которые я возглавляю в проекте, в любом случае вы были правы в том, что вы мне сказали - person Shimon Wiener; 16.11.2012

Я обнаружил проблему, она была в моем projectname.plist. Мне не хватало одного из необходимых элементов, я пропускал его при выполнении инструкций. Спасибо за попытку помочь, теперь у меня есть базовая IOS с PhoneGap/Cordova 2.2. 0 с работающим плагином FaceBook, если кому-то он нужен, буду рад его дать

Это исходный код моего plist, который решил мою проблему

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleDevelopmentRegion</key>
    <string>English</string>
    <key>CFBundleDisplayName</key>
    <string>עמישראל</string>
    <key>CFBundleExecutable</key>
    <string>${EXECUTABLE_NAME}</string>
    <key>CFBundleIconFile</key>
    <string>icon.png</string>
    <key>CFBundleIconFiles</key>
    <array>
        <string>icon-1.png</string>
        <string>[email protected]</string>
        <string>icon114.png</string>
    </array>
    <key>CFBundleIcons</key>
    <dict>
        <key>CFBundlePrimaryIcon</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>icon-1.png</string>
                <string>[email protected]</string>
                <string>icon114.png</string>
            </array>
            <key>UIPrerenderedIcon</key>
            <false/>
        </dict>
    </dict>
    <key>CFBundleIdentifier</key>
    <string>com.mdsitg.amisrael</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleName</key>
    <string>${PRODUCT_NAME}</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleShortVersionString</key>
    <string>1.0</string>
    <key>CFBundleSignature</key>
    <string>????</string>
    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLName</key>
            <string>com.mdsitg.amisrael</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>fb245065455620705</string>
            </array>
        </dict>
    </array>
    <key>CFBundleVersion</key>
    <string>1.0</string>
    <key>FacebookAppID</key>
    <string>245065455620705</string>
    <key>LSRequiresIPhoneOS</key>
    <true/>
    <key>NSMainNibFile</key>
    <string></string>
    <key>NSMainNibFile~ipad</key>
    <string></string>
    <key>UISupportedInterfaceOrientations</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
    </array>
    <key>UISupportedInterfaceOrientations~ipad</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
        <string>UIInterfaceOrientationLandscapeLeft</string>
        <string>UIInterfaceOrientationPortraitUpsideDown</string>
        <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
</dict>
</plist>

если вам нужна дополнительная помощь, пожалуйста, спросите меня

person Shimon Wiener    schedule 16.11.2012
comment
скажите пожалуйста, какой элемент вы пропустили? - person abhishek ameta; 05.12.2012
comment
Я столкнулся с той же проблемой, пожалуйста, помогите мне - person abhishek ameta; 05.12.2012
comment
Привет, я обновляю свой ответ, чтобы попытаться помочь вам в этом на IOS, и моя проблема заключалась в том, чтобы микшировать несколько строк в plist. Я добавлю код plist в обновленный ответ. - person Shimon Wiener; 06.12.2012
comment
@ShimonWiener Эй, Шимон, не могли бы вы опубликовать свой голый проект, чтобы мы могли использовать его в качестве шаблона, возможно, с небольшой рекламой о том, где нужно изменить идентификатор приложения и т. Д.? Я лично отбивался от этого в течение примерно 2-3 дней, и почти все, с чем я сталкивался, устарело, и я уверен, что это очень поможет мне и другим! - person Karoly S; 18.12.2012

Пробовали ли вы добавить ключ/значение FacebookAppID в свой *-info.plist?

Перейдите по адресу https://developers.facebook.com/docs/getting-started/facebook-sdk-for-ios/3.1/ и нажмите:

5: Настройка нового проекта XCode.

Прокрутите вниз до пункта «Добавление идентификатора приложения Facebook».

По сути, вам нужно найти имя проекта-info.plist и добавить новую пару ключ/значение. Ключом будет FacebookAppID, а значением будет идентификатор вашего приложения 245065455620705 (без FB впереди).

person Root Fool    schedule 15.11.2012