2

Python と javascript または php SDK を使用しています。

access_token を取得するには、ドキュメント ページ (https://developers.facebook.com/docs/authentication/) に示されている手順に従います。リダイレクト URL を dialog/oauth に渡し、access_token を取得しました。これが完了すると、ブラウザーに送り返されるすべての出力 html が新しいページにレンダリングされ、facebook の iframe/canvas が残ります。(参考までに、すべての出力は通常の「self.response.out.write」関数呼び出しによって行われます)。

PHP SDK がこれを隠しているようで、取得する方法が見つかりません: http://www.facebook.com/dialog/oauth?client_id=%s&redirect_uri=%s "アプリケーションをトリガーした iframe/canvas. これは「ページ タブ」アプリ (「Facebook のアプリ」ではない) であるため、基本的なアプリ構成ページで「ページ タブ名」と「ページ タブ URL」を設定しました。

私はまだセッションを実装していません。iframe ターゲットを状態変数として渡し、リダイレクトと共に uri に戻す必要があるかどうか疑問に思っています。

私は多くの投稿/その他を検索しましたが、運がありません。助けていただければ幸いです!!

4

2 に答える 2

2

タブページアプリケーションの文書化されていない手順:

  1. 紛らわしい部分は、例のCANVAS_PAGE_URLです。これは、WebでホストされるアプリのURL(https://www.appname.appspot.com/など)である必要があります。これは明確に定義されていません。

  2. access_tokenとuser_idがsigned_requestに見つからない場合は、認証ダイアログを実行する必要があります(ページのドキュメントに従って)。これは、スクリプトtop.location.refを介して実行し、ダイアログとして起動することに耐える必要があります。これは、アプリをトリガーしたキャンバス(またはファンページ)を上書きする新しいページに移動します。

  3. ユーザーがアプリの権限を許可すると、アプリはtab-page-canvas-url?code="....."を介して呼び出されます。この時点で、リダイレクトを実行する必要があります(これはどこにも文書化されていません。これを理解するには、php sdkコードを調べる必要がありました(fbmain.php行17)(pythonおよびheader()phpのredirect())。リダイレクトは、ファンページのアプリのURLを取得する必要があります:http://www.facebook.com/FAN_PAGE_NAME?sk = app_nnnnnnn

これを理解し、それが役立つことを願うには、何時間もの調査と掘り下げが必要でした(iframe / canvasからのページの分割に関して多くの質問が出されました)。基本的な問題は、FBがどこにも文書化しない余分なリダイレクト手順です。 。

(私にメールしてください。今ではすべてうまく機能しているPythonコードを共有できてうれしいです)

于 2011-11-30T03:24:59.850 に答える