我正在使用Facebook Graph Batch API向注册人的FB墙发送一条消息/不同的消息。 我正在为每个用户定义一个access_token,并根据doc为必须的顶层access_token(用作后备)。对于后者,我只使用批处理中列出的用户的access_token。
事情是接收消息的唯一用户是我用作顶级/后备access_token的access_token。 其他用户得到“(#210)用户不可见”错误消息。 我正在使用我的app-roles设置3个测试用户。
知道这里出了什么问题吗?
这是我的代码(python),用于为所有注册人生成一条消息:
for soc_reg in self.registrants:
batch_item = {
"method" : "POST",
"relative_url" : FACEBOOK_URL_FEED % (soc_reg['uid']),
"body" : Helper.toURL(publishParams),
"access_token" : soc_reg['access_token'],
}
batch.append(batch_item)
params = {
"access_token" : self.registrants[0]['access_token'], # used as fallback
"batch" : Helper.toJSON(batch),
}
导致“params”的值如下:
{"access_token": "XYZ", "batch": "[{\"body\": \"caption=&message=is+not+a+test.%0D%0AWe%27re+just+rappin%27+to+the+beat%21&place=146270405429726&link=&description=\", \"access_token\": \"XYZ\", \"method\": \"POST\", \"relative_url\": \"/100003720771245/feed\"}, {\"body\": \"caption=&message=is+not+a+test.%0D%0AWe%27re+just+rappin%27+to+the+beat%21&place=146270405429726&link=&description=\", \"access_token\": \"ZYX\", \"method\": \"POST\", \"relative_url\": \"/100003671211957/feed\"}, {\"body\": \"caption=&message=is+not+a+test.%0D%0AWe%27re+just+rappin%27+to+the+beat%21&place=146270405429726&link=&description=\", \"access_token\": \"YZX\", \"method\": \"POST\", \"relative_url\": \"/100003683601909/feed\"}]"}
因此,接收邮件的唯一用户是此处定义的用户:“access_token”:self.registrants [0] ['access_token'] 当我调整索引时,我可以确定收到该消息的那个;)
答案 0 :(得分:1)
好的,好像文档和API本身不对应: https://developers.facebook.com/bugs/212455918831996
文件说: relative_url => '别名',' body' => ' {"&的access_token#34; => " ..."}'
但只有这种方式似乎有效: ' relative_url' => '别名的access_token = ...'?
FB好像已经确认了这个错误并把它放在了“愿望清单”上,到目前为止,后者是要走的路,至少对我有用:)