2011-09-23 41 views
0

我试图使用PHP在用户墙上发布帖子而没有任何运气的批量请求。 我已经成功地提供了类型为“GET”但不是“POST”类型的洗澡请求。Facebook使用PHP的批量发布请求

我的代码:

$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"}]'; 

批量要求将suceeded并会告诉我的用户墙的第一篇文章..但什么是我的POST请求的问题?

回答

2

我包裹$batched_requesturlencode()和它的工作就像一个魅力:

$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
enter image description here

-1

This class将简化向Facebook发出批量请求。

+0

你介意在这里发布代码或说明吗?如果网站出现故障或关闭,我们就不会在这里提供任何信息。 – Nightfirecat

+0

噢,这是它:http://snipt.org/qpJp4 –

+1

而在这两个网站的网页没有找到。信息丢失 –