1

我正在使用 Facebook Graph Batch API 向注册人的 FB 墙发送一条消息/不同消息。我正在为每个用户定义一个 access_token ,以及必须的顶级 access_token (根据doc用作后备)。对于后者,我只使用批处理中列出的用户的 access_token。

问题是唯一收到消息的用户是我用作顶级/后备access_token的access_token的用户。其他用户收到“(#210) 用户不可见”错误消息。我在我的应用程序角色中使用 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'] 当我调整索引时,我可以确定接收消息的用户;)

4

1 回答 1

1

好的,似乎文档和 API 本身不对应: https ://developers.facebook.com/bugs/212455918831996

文档说:relative_url => 'alias', 'body' => '{"access_token" => "..."}'

但似乎只有这种方式有效:'relative_url' => 'alias?access_token=...'

FB 似乎已经确认了这个错误并将其放在“愿望清单”上,到目前为止,后者是要走的路,至少对我有用 :)

于 2012-05-03T10:57:22.170 回答