3

ユーザーがアルバム、ステータス更新、またはグループに新しい写真をアップロードしたときに、通知 (Facebook のリアルタイム更新機能) を受け取るために、どのオブジェクトと接続を購読する必要があるかを知りたいです。

これは、ユーザーのプロフィール写真ではなく、ユーザーが Facebook で共有しているすべての写真に関するものです。

4

1 に答える 1

1

Facebook は、リアルタイム更新の説明 ( https://developers.facebook.com/docs/reference/api/realtime/ - 「更新の種類」の下)で次のように述べています。

User オブジェクトのすべてのプロパティと接続の変更をサブスクライブできないことに注意してください。サブスクライブできる接続には、フィード、友達、アクティビティ、興味、音楽、本、映画、テレビ、いいね、チェックイン、場所、イベントが含まれます。

私が考えることができる唯一のことは、フィード接続を購読し、投稿が写真に関連しているかどうかを調べるためにいくつかの後処理を行うことです:

GET https://graph.facebook.com/{USER_ID}/feed?fields=id,link,type,link&since={YOUR_TIMESTAMP}&access_token={ACCESS_TOKEN}

Facebook のリアルタイム更新からの POST から USER_ID を取得できます。YOUR_TIMESTAMP は、POST が受信されたシステム時間から 30 秒を引いたようなものです。ACCESS_TOKEN は、ユーザーがアプリにアクセス許可を与えた後に保存した場所から取得する必要があります。 .

次に、 "type": "photo"を含むすべての配列エントリの結果の JSON を解析すると、写真を参照する投稿を受け取ることができます。

次に、post_ids のコンマ区切りリストを作成し、これを FQL クエリと組み合わせて使用​​して、添付された写真の詳細を取得できます。

GET https://graph.facebook.com/fql?q=select+post_id,+attachment,+created_time+from+stream+where+source_id+=+{USER_ID}+and+type+=+247+and+post_id+in+({POST_ID_LIST})&access_token={ACCESS_TOKEN}

結果の JSON 内で、写真の AID と PID を見つけることができます。これを使用して、写真に関する詳細情報を取得できます。または、 images.srcにある URL を使用します。

次の方法で FQL を介してすべての写真投稿を取得できますが、これはリアルタイム更新とは関係ありません。

select post_id, attachment, created_time from stream where source_id = me() and type = 247 limit 100
于 2013-09-04T15:57:07.467 に答える