我正在尝试使用PHP发出批量请求,这样就可以在用户墙上发布帖子而没有任何运气。 我已经成功完成了“GET”类型的洗浴请求,但没有“POST”类型。
我的代码:
$batched_request = '[{"method":"POST","relative_url":"me/feed","body": "message=hi"},' .
'{"method":"GET","relative_url":"me/feed?limit=1"}]';
$post_url = "https://graph.facebook.com/" . "?batch="
. $batched_request
. "&access_token=" . $access_token . "&method=post";
echo $post_url;
$post = file_get_contents($post_url);
echo '<p>Response: <pre>' . $post . '</pre></p>';
$decoded_response = json_decode($post, true);
print_r($decoded_response);
如果我将$ batched_request更改为:
$batched_request = '[{"method":"GET","relative_url":"me/feed?limit=1"}]';
批处理请求将被取消并将显示用户墙的第一篇帖子..但我的POST请求有什么问题?
答案 0 :(得分:2)
我将$batched_request
包裹在urlencode()
中,它就像一个魅力:
$batched_request = '[{"method":"POST","relative_url":"me/feed","body": "message=hi"},' .
'{"method":"GET","relative_url":"me/feed?limit=1"}]';
$post_url = "https://graph.facebook.com/" . "?batch="
. urlencode($batched_request)
. "&access_token=" . $access_token . "&method=post";
echo $post_url;
$post = file_get_contents($post_url);
echo '<p>Response: <pre>' . $post . '</pre></p>';
$decoded_response = json_decode($post, true);
print_r($decoded_response);
同时确保您已授予publish_stream
权限
答案 1 :(得分:-1)
This class将简化对Facebook的批量请求。