2

ASP.NETWebサイトを開発しています。それはテキスト記事を含み、それらのいくつかはテキストの上とそれを超えて私のFacebookアカウントからの写真を含みます。アカウントの公開アルバムのみを使用することに注意してください。

そこで、SQLテーブルを作成し、、、articlesおよびalbumsphotos実際にIDsはそれらすべての)をバインドしました。私はすでにfacebookapisdkを使用していて、それは素晴らしいライブラリでした。

明らかに、私のWebサイトの訪問者は(Facebookアカウントを持っていなくても)、Facebookにアクセスしなくても、Facebookを介してアクセスするための認証なしで、記事や写真を見ることができますoAuth

さてここに質問があります:

1)認証の有無にかかわらずalbum id、公開アルバムに含まれる写真を取得するにはどうすればよいですか?(わかりません。アルバムIDとユーザーID以外のパラメーターを使用する必要があるかもしれません)user id

2)公開アルバムのプロパティ(名前、IDなど)を取得するにはどうすればよいですか?

4

2 に答える 2

2

ユーザーのアルバムのリストを取得するには、GraphAPIに次のGETリクエストを発行する必要があります。

https://graph.facebook.com/me/albums?access_token=...

そして、写真のリストを取得するには:

https://graph.facebook.com/ALBUM_ID?access_token=...

user_photosただし、認証と許可の要求なしにユーザーのアルバム(および写真)を読み取ることはできません。

ドキュメントによるとalbum

必要なアルバムを読むには

したがって、一般的に、希望する結果を達成するためのオプションは2つだけです。

  1. Facebookページを使用して、サイトに表示するすべてのアルバム/写真を保存します
  2. 個人アカウントを使用してアルバム/写真を保存します
于 2012-05-22T07:05:27.213 に答える
2

アクセストークンがないと、グラフAPIから取得できるものはほとんどありません。ブラウザを次の場所に誘導して、試してみてくださいhttp://graph.facebook.com/YOU_USER_ID

また、ユーザーオブジェクトのドキュメントのフィールド/接続テーブルを確認することもできます。このテーブルには、トークンなしで取得できる[アクセス許可]列(3番目)に「access_tokenは必要ありません」と記載されています。

自分の他のデータを取得してサイトで公開したい場合は、次の2つのオプションがあります。

  1. サーバー側の認証フローを使用し、長期間有効なアクセストークン(60日)を取得し、それを保存して、Facebookからデータを取得するために次の60日間使用します。次に、有効期限が切れたら、認証プロセスを再度実行します。ユーザーではなく、60日に1回だけ、それを通過する必要があるのはあなただけです。

  2. 自分でログインし、アプリに対して認証し、すべてのデータを取得してデータベースに保持してから、それをユーザーに提示します。時々更新する必要があります。


編集

サーバー側の認証フローガイドには、phpで記述された例があります。これはすべてのシナリオを網羅しているわけではない単純な例ですが、良いスタートです。

私はこれをPythonとJavaで実装しましたが、複数のリクエストと状態にまたがっているため、簡単に共有できるものではありません。そのため、使用する必要があると思うフローについて説明します。

  1. Facebook内であなたはあなたのキャンバスアプリに行きます
  2. Facebookは、キャンバスのURLを使用してPOSTをiframeに作成します
  3. 投稿データでは、署名されたリクエストを取得し、それをデコードして、アクセストークンがあるかどうかを確認します。ある場合は、有効期限が切れる時期を確認します。すべてが良好な場合はそのトークンを保存し、認証プロセスは終了します。それ以外の場合は次のようになります。
  4. 必要なリダイレクトURLとアクセス許可とともに、ユーザーをoAuthダイアログにリダイレクトします。
  5. 独自のアプリを許可すると、コードパラメーター(クエリ文字列内)を使用して「recirect_uri」にリダイレクトされます。
  6. Facebookサーバーに対してアクセストークンのコードを交換し、トークンを保存します。
  7. その後、キャンバスアプリにリダイレクトするか、そこで停止することができます。

これで、60日間使用できる長寿命のアクセストークンでそれができるはずです。

自分のデータベースにfbデータを保持することに関しては、データをデータベースに保存するのは非常に簡単な操作であり、保存するデータ、エンコード/使用方法(json、xml、プレーンテキスト)によって異なります。 )。

たとえば、自分の写真を表示したいとします。トークンを取得したら(上記のように)、サーバーからhttpリクエストを発行して写真をクエリしますhttps://graph.facebook.com/me/photos?access_token=XXXXXX。jsonでエンコードされた結果を取得し、それを繰り返して、各画像をレコードとしてデータベースに保存する必要があります。

于 2012-05-22T07:40:06.337 に答える