2011-10-02 28 views
1

我试图提交批处理请求,通过开放图谱测试版添加对象到用户的时间线,但无论我做什么,我得到这个:发送批量请求给Facebook的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.

am虽然指定了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编码的参考字符串包含我打开图形数据的URL - 网址不工作,如果我把它不是作为一个批次,但因为在设置用户的时间轴时,我会在某些情况下发布多达1000个操作,我试图通过批处理来加快速度。

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

回答

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时,数据必须格式化为查询状态,并以“字符串”参数作为字符串发送。

+0

现在我得到一个新的错误“批参数必须是JSON数组”。我的批量参数是一个格式正确的JSON数组,虽然:https://graph.facebook.com/batch?access_token=TOKEN&method=post&batch=[{"method":"POST","re​​lative_uri":"me/my_namespace:find“中, “身体”: “蛋= HTTP%3A%2F%2Fwww.mydomain.com%2Fmy_namespace%2Fog%2Fegg.php%3Ftypeid%3D-966&START_TIME = 1317439270&END_TIME = 1317439270”},{ “方法”: “POST”,” relative_uri “:” 我/ my_namespace:发现”, “体”: “蛋= HTTP%3A%2F%2Fwww.mydomain.com%2Fmy_namespace%2Fog%2Fegg.php%3Ftypeid%3D-968&START_TIME = 1317438608&END_TIME = 1317438608”}] –

+0

我有一个facebook应用程序,有两个自定义对象类型和两个操作。一个动作/对象组合工作正常。另一个得到“不指定任何引用对象”的错误。每次。我已经测试了curl和javascript,同样的错误。我从开发人员的应用程序中复制了示例代码,并得到相同的错误。所以我希望有人在这里发布解决方案! –