我正在尝试使用Facebook Javascript SDK发布到经过身份验证的用户的朋友的墙上。我在响应中看到了似乎是有效的帖子ID,但帖子没有出现在Facebook上,当我使用FB Graph API资源管理器查看帖子时,它只返回false。
我正在使用具有“publish_stream”权限的FB登录按钮进行身份验证,并设置了测试FB应用程序以获取有效的应用程序ID。我正在使用以下代码发布到用户的朋友的墙上:
FB.api('/[USER_ID]/feed', 'post', {
message: 'Testing the Facebook JavaScript API',
link: 'http://developers.facebook.com'
}, function(response) {
if (!response || response.error) {
console.log('Error occured');
} else {
console.log('Post ID: ' + response.id);
console.dir(response);
}
});
当我用'我'替换[USER_ID]时,它按预期工作 - 我可以看到我的FB时间轴上的帖子。但是,当我使用我朋友的一个用户ID时,我会收到一个帖子ID回复,但该帖子不会出现在他们的Feed中的任何位置。想法?
这是我的登录按钮:
<fb:login-button show-faces="false" width="200" scope="publish_stream,publish_actions" perms="publish_stream"></fb:login-button>
答案 0 :(得分:2)
我遇到了同样的问题。我疯狂地工作了5个小时。实际上,我认为没有问题。唯一的问题是,其他墙上的帖子可以在几个小时后到达。
如果有人遇到同样的问题,请至少等几个小时才能完全更改代码并变得疯狂。
答案 1 :(得分:0)
你不能张贴到朋友的墙上
答案 2 :(得分:0)
我能够通过从头创建一个全新的FB应用程序来解决这个问题,之后上面的代码工作,这让我认为问题必须在我以前的Facebook应用程序的配置中。我找到的唯一主要区别是在App&gt;设置&gt;基本&gt;网站&gt;网站网址,我输入了应用的域名,而不是应用页面本身的完整路径。因此,您确实可以动态地将帖子发布到经过身份验证的用户的朋友的墙上。
答案 3 :(得分:0)
这里是javascript sdk和facebbok c#sdk:
function fb_publish() {
FB.ui(
{
method: 'stream.publish',
message: 'Message here.',
attachment: {
name: 'Name here',
caption: 'Caption here.',
description: (
'description here'
),
href: 'url here'
},
action_links: [
{ text: 'Code', href: 'action url here' }
],
user_prompt_message: 'Personal message here'
},
function(response) {
if (response && response.post_id) {
alert('Post was published.');
} else {
alert('Post was not published.');
}
}
);
}
和
var client = new FacebookClient("my_access_token");
dynamic parameters = new ExpandoObject();
parameters.message = "Check out this funny article";
parameters.link = "http://www.example.com/article.html";
parameters.picture = "http://www.example.com/article-thumbnail.jpg";
parameters.name = "Article Title";
parameters.caption = "Caption for the link";
parameters.description = "Longer description of the link";
parameters.actions = new {
name = "View on Zombo",
link = "http://www.zombo.com",
};
parameters.privacy = new {
value = "ALL_FRIENDS",
};
parameters.targeting = new {
countries = "US",
regions = "6,53",
locales = "6",
};
dynamic result = client.Post("me/feed", parameters);
如果有帮助,请你把它标记为已回答:)