1

Facebook と統合するネイティブ iOS アプリを作成しています。数か月前に、developers.facebook.com を介してプレースホルダー FB アプリをセットアップし、それを介してすべてのテストを行ってきました。リリースが近づいてきたので、正しいアプリの説明/URL フィールドなどをすべて備えた、新しくクリーンな「適切な」FB アプリをセットアップしようと思いました。

最初のステップとして、新しいアプリをできるだけ古いアプリと同じようにセットアップし、新しいテスト ユーザーを作成しました。古いアプリは問題なく動作するので、私たちの iOS コードが正しいことはかなり確信しています (もちろん、XCode プロジェクトなどでアプリ ID を切り替えました) が、新しいアプリを統合して実行すると、この動作が発生します。ユーザーでアプリを承認しようとするとき:

iOS Facebook アプリがインストールされていて、テスト ユーザーがすでにログインしている場合:

  1. openActiveSessionWithReadPermissions を呼び出す (@"email" パーミッションを要求する) と、iOS Facebook アプリが起動され、アプリの基本情報承認ページがユーザーに表示されます。
  2. ユーザーは、ページの上部にある [ログイン] ボタンをクリックします。
  3. FB アプリは、左上に [キャンセル] ボタンがある別の空白のウィンドウをポップアップ表示します。
  4. この時点から、ユーザーが何をしても、Facebook が制御を iOS アプリに戻すことはありません。
  5. しかし、後でテスト ユーザーのページを確認すると、アプリ承認されていることがわかります。

デバイスから Facebook アプリをアンインストールすると、代わりにリクエスト画面が強制的に Safari に表示されるようになり、上記のポイント (3) が次のように置き換えられることを除いて、同じ動作になります。

3) 「アドレスが無効なため、Safari でページを開くことができません」というデバイス アラート。これは、開こうとしているアドレスです: https://m.facebook.com/dialog/permissions.request?_path=permissions.request&app_id= <*our_app_id*>&redirect_uri=fb<*our_app_id*>%3A%2F%2Fauthorize&sdk =ios&display=touch&type=user_agent&perms=email&fbconnect=1&sso=iphone-safari&from_login=1&client_id=<*our_app_id*>&refid=9

この動作は、iOS 5.1 および 6.0 ハードウェア デバイスと 6.0 シミュレータで同じであることがわかりました。古い FB アプリを使用すると、認証が正しく返されます。アプリの管理ページで、魔法のような、ほとんど文書化されていないオプションのチェックボックスの1つを正しく設定していないだけだと確信していますが、何が問題なのかを見つける方法が本当にわかりません.

アドバイスをありがとう!

4

1 に答える 1

1

アプリに戻らないため、Info.plistにURLスキームを追加するのを忘れている可能性があります。新しいエントリが必要です。これがXML表現です。

<?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">
        <array>
        <dict>
                <key>CFBundleURLSchemes</key>
                <array>
                    <string>fbYOUR_APP_ID</string>
                </array>
        </dict>
        </array>
    </plist>
于 2012-11-12T20:12:14.550 に答える