アクセストークンがないと、グラフAPIから取得できるものはほとんどありません。ブラウザを次の場所に誘導して、試してみてくださいhttp://graph.facebook.com/YOU_USER_ID
。
また、ユーザーオブジェクトのドキュメントのフィールド/接続テーブルを確認することもできます。このテーブルには、トークンなしで取得できる[アクセス許可]列(3番目)に「access_tokenは必要ありません」と記載されています。
自分の他のデータを取得してサイトで公開したい場合は、次の2つのオプションがあります。
サーバー側の認証フローを使用し、長期間有効なアクセストークン(60日)を取得し、それを保存して、Facebookからデータを取得するために次の60日間使用します。次に、有効期限が切れたら、認証プロセスを再度実行します。ユーザーではなく、60日に1回だけ、それを通過する必要があるのはあなただけです。
自分でログインし、アプリに対して認証し、すべてのデータを取得してデータベースに保持してから、それをユーザーに提示します。時々更新する必要があります。
編集
サーバー側の認証フローガイドには、phpで記述された例があります。これはすべてのシナリオを網羅しているわけではない単純な例ですが、良いスタートです。
私はこれをPythonとJavaで実装しましたが、複数のリクエストと状態にまたがっているため、簡単に共有できるものではありません。そのため、使用する必要があると思うフローについて説明します。
- Facebook内であなたはあなたのキャンバスアプリに行きます
- Facebookは、キャンバスのURLを使用してPOSTをiframeに作成します
- 投稿データでは、署名されたリクエストを取得し、それをデコードして、アクセストークンがあるかどうかを確認します。ある場合は、有効期限が切れる時期を確認します。すべてが良好な場合はそのトークンを保存し、認証プロセスは終了します。それ以外の場合は次のようになります。
- 必要なリダイレクトURLとアクセス許可とともに、ユーザーをoAuthダイアログにリダイレクトします。
- 独自のアプリを許可すると、コードパラメーター(クエリ文字列内)を使用して「recirect_uri」にリダイレクトされます。
- Facebookサーバーに対してアクセストークンのコードを交換し、トークンを保存します。
- その後、キャンバスアプリにリダイレクトするか、そこで停止することができます。
これで、60日間使用できる長寿命のアクセストークンでそれができるはずです。
自分のデータベースにfbデータを保持することに関しては、データをデータベースに保存するのは非常に簡単な操作であり、保存するデータ、エンコード/使用方法(json、xml、プレーンテキスト)によって異なります。 )。
たとえば、自分の写真を表示したいとします。トークンを取得したら(上記のように)、サーバーからhttpリクエストを発行して写真をクエリしますhttps://graph.facebook.com/me/photos?access_token=XXXXXX
。jsonでエンコードされた結果を取得し、それを繰り返して、各画像をレコードとしてデータベースに保存する必要があります。