パブリックコンテンツのクライアント認証なしのFacebook API
-
05-07-2019 - |
質問
すでにFacebookで自分の製品の写真を持っているクライアント向けのサイトを開発していますが、彼は同じアルバムを自分のサイトに複製したいと考えています。すでにFacebook Connectを使用していたので、 photos.getAlbums
と photos.get
の組み合わせを削除して、ギャラリーを動的に作成しました。
これまでのところは良いですが、FBC経由でログインしているユーザーがいない場合、セッションは作成されず、APIは公開されているコンテンツでも使用できなくなります。アカウントをつなぐ人だけでなく、全員にアルバムを見せたいのは明らかです。
これは、Facebook APIのすべての機能の仕組みですか?この状況に最適な(実装しやすい)回避策は何ですか?
解決
2010年9月現在、関連付けられたユーザーなしで、アプリケーションとして認証できるようになりました。詳細については、 http://developers.facebook.com/docs/authentication/ をご覧ください。または、次のサンプルコードを実行してアクセストークンを取得できます。
curl -F grant_type=client_credentials \
-F client_id=your_app_id \
-F client_secret=your_app_secret \
https://graph.facebook.com/oauth/access_token
他のヒント
記録のために、クライアントがFacebookに一度ログインして offline_access
FBアプリへの拡張許可なので、彼のセッションキーを保存し、使用するたびにFacebook APIクライアントの認証に使用できます非公開コンテンツを取得するFQL。
Facebookへの不要なリクエストを回避するために、明らかにキャッシュを途中に追加することもできますが、私が知っている制限に達することなく、数か月間は正常に機能しています。
それは私には意味がありません-ユーザーがFacebookにログインしたことがない場合でも(比較的簡単な)アプリをレンダリングします(この場合、デモデータが表示されます)。
facebook PHPライブラリを使用するときは、次のようにします。
$ facebook = new Facebook($ api_key、$ secret);
セッションIDは必要ありませんが、明らかに、ユーザーに関する情報に依存するAPI関数は機能しません。
"無限セッション" を調べることもできます。アプリの場合-自分で無限のセッションキーを作成し、そのセッションを使用してAPIにアクセスできます。