我正在使用 JavaScript SDK。我有一个具有发布权限的应用程序,在采取某些操作后,将在登录用户墙上发布帖子,如下所示:
FB.getLoginStatus(function (response) {
//we are authorized
if (response.status == "connected") {
var name = "Post name";
var body = "Post body";
var caption = "The caption";
var description = "The description";
var link = "http://www.facebook.com/mypage";
FB.api('/me/feed', 'post', { message:body,caption:caption,link:link,name:name,description:description}, function (response) {
console.log(response);
});
}
});
我想做的是在用户页面成功发布后发布到特定的 Facebook 页面。有没有办法安全地预先授权应用程序来做到这一点?这可以通过 JavaScript SDK 实现,还是完全可以实现?我环顾四周,并没有找到明确的答案。我正在查看 FB 文档,但发现有些地方有点参差不齐。谁能告诉我这是否可能?任何帮助或建议将不胜感激,非常感谢!
编辑:我的错误,我应该提供更多信息。这是我正在尝试做的事情:
var body = "The body";
var caption = "The caption";
FB.api("mypageid/feed", "post", { message: body, caption: caption }, function (response) {
console.log(response);
});
我收到错误消息,"this api call requires a valid app_id"
但是我的页面 ID 是有效的。当我打电话FB.init()
时,我正在传递我的应用程序 ID,它适用于登录用户提要的第一篇文章。
编辑:
我已经做出了 Igy 建议的更改。现在我收到错误消息:""(#200) 用户没有授予应用程序自动发布提要故事的权限""
现在,正如我所说,我正在尝试发布到 Facebook 页面。我已经登录到拥有该页面的帐户,并且我已经转到该应用程序并单击允许以下权限:
email,user_photos,publish_stream
当我使用拥有该页面的帐户登录并检查我的状态时:
FB.getLoginStatus(function (response) {
console.log(response);
});
我得到“连接”。我做错了吗?除了授权拥有该页面的帐户之外,我还需要做更多的事情吗?有没有办法为页面设置允许权限?我做了一点挖掘,但找不到答案。
编辑:好的,现在发生的事情是,如果我登录到拥有该页面的帐户,则该页面将发布该帖子。如果我使用另一个帐户登录,我会返回一个 ID 作为对 API 调用的响应,但它似乎不是有效的对象 ID。例如我刚刚得到这个:
id: 499973616681852_507724422573438
如果我去http://graph.facebook.com/499973616681852_507724422573438
我收到一个“unsupported get request"
图形 api 异常,这表明返回的 id 无效。我觉得我在这里很近,但我错过了一些东西。任何建议都将不胜感激,再次感谢所有回复的人。
编辑:删除了页面的链接,这是无意中留下的。