1

私はいくつかの問題に直面していて、誰かが何か洞察を持っているかどうか疑問に思いました。私は最新のphp-sdkを使用しています。私はいくつかの異なるステップを持つキャンバスアプリを開発しています。これらの手順は、複数のページにまたがっています。今、私が最初にアプリに入ったとき、すべてがうまく機能しているようです。アクセストークンがあり、API関数を呼び出すことができます。2番目のページ(同じiframe内でリンクされている)で、OAuthエラーが発生します。2ページ目でこれを使用すると:

 $me = $facebook->getUser();
 var_dump($me);

正しいユーザーIDが返されますが、APIクエリ(特にこの場合はFQLクエリ)を使用しようとするとエラーが発生します

さて、これらのリンクはiframe内にあるので、signed_requestがどこかで失われていると思っていたので、Facebookは通常POSTを介してこれを発行することを覚えておいてください。http://apps.facebook.com/myapp/page2.phpなどのURLを使用してすべてのリンクをtarget="_ parent"に設定すると、すべてが正常に機能します。今回、Facebookは明らかに正しい情報を投稿しています。その後、iframeのみをリダイレクトするリンクを使用すると、再び正常に機能するように見えます(Cookieがどこかに設定されていることを意味します)。

これで、正しく機能しているように見えるtarget = "_ parent"を持たない他のアプリを見てきました。これは、Facebookサイト全体ではなく、後続のクリックでのみiframeをロードします。だから私は彼らがこの情報をどこかに保存していると推測することしかできません。httpfoxを使用してこれらのアプリを検査しようとしましたが、明らかなものは何も表示されません。複数ページのアプリのベストプラクティスへのリンクはありますか?完全なURLとtarget="_ blank"を使用してこれを回避できることはわかっていますが、ここで何が起こっているのかを知りたいと思います。開発者向けドキュメントとキャンバスページの例を確認しましたが、明らかなことは何もありません。

ヘルプや情報をいただければ幸いです

どうもありがとう

4

1 に答える 1

0

これを達成するにはいくつかの方法があります

  • Facebook JavaScript SDK を使用する (これにより Cookie が設定されるため、PHP-SDK はそれに依存することができます)
  • signed_requestキャンバスにロードされた最初のページを含む、ページへの POST リクエストの発行
于 2011-12-30T19:29:22.173 に答える