使用Facebook Javascript SDK发布到用户的朋友的墙上 - 获得有效的回复,但帖子没有出现在Facebook上

时间:2012-02-27 01:13:42

标签: javascript facebook facebook-graph-api facebook-javascript-sdk

我正在尝试使用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>

4 个答案:

答案 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);

如果有帮助,请你把它标记为已回答:)