将批量请求发送到Facebook Open Graph Beta

时间:2011-10-02 14:42:14

标签: facebook curl facebook-graph-api

我正在尝试提交一个批处理请求,通过Open Graph Beta将对象添加到用户的时间轴,但无论我做什么,我都会得到这个:

The action you're trying to publish is invalid because it does not specify any reference objects. At least one of the following properties must be specified: egg.

指定egg属性。我的要求如下:

https://graph.facebook.com/?batch=[{'method':'POST','relative_url':'/me/my_namespace:find','egg':'http%3A%2F%2Fwww.mydomain.com%2Fmy_namespace%2Fog%2Fegg.php%3Ftypeid%3D-966','start_time':'1317439270','end_time':'1317439270'}]&access_token=<<snipped>>&method=post

我正在将egg作为网址编码的引用字符串发送到包含我的开放图表数据的网址 - 如果我不是批量发送它,而是在设置用户的时间轴时设置了URL在某些情况下,我必须发布最多1000个动作,我试图通过批量处理来加快速度。

能够通过批量请求成功删除。

1 个答案:

答案 0 :(得分:2)

您不需要将'egg'作为批处理对象的参数发送,而是需要将其格式化为查询字符串并将其发送到正文参数中。

此外,relative_url不应以'/'

开头

尝试发布此内容......

https://graph.facebook.com/batch?access_token=TOKEN&method=post&batch=
[
    {
        "method": "post",
        "relative_uri": "me/your_namespace:find",
        "body": "egg=http%3A%2F%2Fwww.mydomain.com%2Fmy_namespace%2Fog%2Fegg.php%3Ftypeid%3D-966&start_time= 1317439270&end_time= 1317439270
    }
]

我已经对此进行了测试,但确实有效。

将数据发布到批处理API时,数据的格式必须像查询一样,并在'body'参数中作为字符串发送。