アプリが特定のページのリアルタイム更新を受け取るようにサブスクリプションをセットアップしました。これは期待どおりに機能し、ユーザーがページに投稿すると更新を受け取ります。
更新にはページ ID のみが含まれているため、Graph API を使用して投稿の詳細を取得します。問題は、リアルタイム更新の投稿 ID が有効ではなく、Graph API からエラーが発生することです。
ページのフィードをクエリすると、投稿は別の (正しい) ID で表示されます。
正しい ID は、<ページ ID>_<投稿 ID> で構成されます。リアルタイム更新のものは、接頭辞付きのページ ID のない <post id> だけです。
リアルタイム更新のデータ:
{
"object":"page",
"entry":[{
"id":"<page id>",
"time":1372177485,
"changes":[{
"field":"feed",
"value": {"item":"post", "verb":"add", "post_id":<post id>}
}]
}]
}
グラフ クエリ:
http://graph.facebook.com/<post id>
応答:
(GraphMethodException - #100) Unsupported get request.
グラフ クエリは、有効期間が長い (期限切れでない) ページ トークンを使用して実行されています。Graph API エクスプローラー ツール ( https://developers.facebook.com/tools/explorer ) を使用した場合と、有効期間が短いユーザー トークンを使用した場合でも、同じ応答が得られます。
明らかに、指定されたページ ID にページ ID を追加して有効な ID を生成することもできますが、フォーマットがいつでも変更された場合、それはあまり堅牢ではありません。Facebook が有効な ID を返さないのはなぜですか? 私が間違っていることはありますか?