1

現在、iOS API を使用してアクセス トークンを取得し、それを WebView に Cookie として渡しています。webview で (私のアプリの一部は iOS で、他の部分は html5 ですが、ユーザーに 2 回ログインさせたくないため) サーバー側でアクセス トークンを取得しています。

setAccessToken()関数を使用して (Facebook PHP SDK を使用して) アクセス トークンを設定していますが、その直後にgetUser()を呼び出すと、常に 0 が返されます。

私が使用しているすべてのコードが通常の「Web」バージョンで機能しているため、SDK が一般的に機能することはわかっています。他の人がこれを機能させているように見えるので、これが実際に可能であることを願っています。しばらくこれに固執していたので、これをすぐに機能させるための助けやアドバイスをいただければ幸いです! ありがとう!

4

1 に答える 1

1

すべてのコードで、トークンが有効かどうかを確認するために "getUser" を実行するのではなく、"/me" 呼び出しを実行します。getUser() は、「/me」が機能する場所で失敗することがよくあります。ですから、その発見はあなただけではありません。次に、代わりに /me 呼び出しからユーザー ID を取得します。もちろん、すべてがtry / catchでラップされています:)

もう 1 つのヒント: セッションを Cookie として渡しているとおっしゃいましたが、それはあなたが制御する Cookie であるといいのですが。私の経験では、「cookie」モードと「not cookie」モードを混在させないでください。1 つのシステムで get/setAccessToken を手動で処理している場合は、あらゆる場所 (webview、php サーバー、Javascript など) で cookie をオフにしてください。この後、私がやろうとしていることにトークンを渡すのに問題はありませんでした。

もう 1 つ気をつけなければならないのは、「setAccessToken」が無効である場合、PHP SDK はセッション変数があればそれを消去します。PHP セッション変数だけでなく、それらすべて。

最後に、/me も論理値を返すようにしましたが、FirstName などは空白にしています。なぜこれが起こるのかはまだ解明されていませんが (おそらく今後も起こらないでしょう)、トークンを共有するときにプログラムするべき何かが他にあります。

フェイスブックです。簡単にするつもりはありませんでした {にやにや笑い}。

それが役立つことを願っています。

于 2012-05-26T07:37:36.370 に答える