2017-07-11 12 views
0

からの同期応答は、私がここに記載されているように与えられたFacebookページにメッセージやリンクを投稿するFacebookのグラフAPIバッチリクエストを実行することができるよ:https://developers.facebook.com/docs/graph-api/making-multiple-requestsFacebookのグラフAPI - バッチ要求

バッチ呼び出し例(2つのメッセージを投稿します上記要求に対する

access_token=...&batch=[{"method":"POST","relative_url":"000000000000000/feed?fields=created_time,id,permalink_url","body":"message=page+test+post+4"},{"method":"POST","relative_url":"000000000000000/feed?fields=created_time,id,permalink_url","body":"message=Test2+status+update"}]&include_headers=false 

レスポンススニペット:同じFacebookページ)に

[{ 
    "code": 200, 
    "body": "{\"created_time\":\"2017-06-30T01:00:02+0000\",\"id\":\"000000000000000_157349X08600319X\",\"permalink_url\":\"https:\\\/\\\/www.facebook.com\\\/permalink.php?story_fbid=157349X09600319X&id=000000000000000\"}" 
}, 
{ 
    "code": 200, 
    "body": "{\"created_time\":\"2017-06-30T01:00:02+0000\",\"id\":\"000000000000000_157349X08600319X\",\"permalink_url\":\"https:\\\/\\\/www.facebook.com\\\/permalink.php?story_fbid=157349X08600319X&id=000000000000000\"}" 
}] 

私がいるトラブルは、応答をマップしたり、同期しようとしています上記の例では、親要求にsを追加します。グラフAPIが、バッチ内の各リクエストの任意のIDを送信して対応するレスポンスとともに返すことができれば、それをマッピング目的で使用することはできますが、それはできません。それ。私のアプリケーションでは、親の要求ごとにパーマリンクをデータベースに保存するための応答を同期させる必要があります。

id、permalinkなど以外のフィールドを返すようにリクエストすることができます。しかし、使用可能なフィールドのどれもが私にマッピングに必要なものを与えてくれません。 「メッセージ」フィールドはトリックを行うかもしれませんが、それは正しいアプローチのようには見えません。

私の他の選択肢は、単一の要求を実行することですが、私はバッチ要求の概念とそれがサーバーコールの数を減らすのに役立つ節約を気に入っています。

+0

問題の内容が実際にわかりません。バッチ内の個々のリクエストと同じ順序でレスポンスを取得します。つまり、最初にどのような順序でどのデータを送信するのかを覚えておくだけです。 – CBroe

+0

@CBroe Facebookドキュメントには、バッチ操作の場合、順序は保証されません。 –

+0

_execution_の順序のみが保証されていません。しかし、応答の順序は、元の要求の順序に対応します。_ "応答の順序付けは要求の操作の順序に対応するため、開発者は応答を処理して、どの操作が成功し、どの操作が必要であるかを判断する必要があります後の操作で再試行しました。」_ – CBroe

答えて

0

実行順序のみが保証されていません。しかし、応答の順序は、元の要求の順序に対応します。「応答の順序付けは要求内の操作の順序に対応するため、開発者は応答を処理して、どの操作が成功し、どの操作が再試行されるかを判断する必要があります」 - CBroe

誰もがこの問題を見ると、CBroeからの回答は正しい - 初期テストでは、バッチで送信された要求と同じ順序でFacebookのバッチ応答が返されることが確認されています。

関連する問題