FB.ui()忽略“to”属性

时间:2014-04-25 06:55:08

标签: javascript facebook facebook-graph-api facebook-javascript-sdk fb.ui

有没有人遇到FB.ui的“to”属性被忽略的情况 - 即使它已经设置 - 而的帖子会转到当前登录用户的墙上?

当使用完全剥离的测试页面使用FB示例代码(和硬编码的参数值)时,它会按预期发布到我的墙上。但是当我向这个FB代码添加“to”属性时,仍然只发布到我的墙上。

我会非常感谢任何想法,因为我已经将这些档案和FB开发网站拖入了我认为彻底的方式。

SDK正确加载并且iframe弹出(尽管它滚动到页面顶部)。

以下是我的测试页中使用的精简代码:

$("#well").click(function(e) {
  FB.ui(
  {
   method: 'feed',
   to: '***', /* <=== this person is a confirmed friend with appropriate privacy settings */
   name: 'The Facebook SDK for Javascript',
   caption: 'Bringing Facebook to the desktop and mobile web',
   description: (
      'A small JavaScript library that allows you to harness ' +
      'the power of Facebook, bringing the user\'s identity, ' +
      'social graph and distribution power to your site.'
   ),
   link: 'https://developers.facebook.com/docs/reference/javascript/',
   picture: 'http://www.fbrell.com/public/f8.jpg'
  },
  function(response) {
    if (response && response.post_id) {
      alert('Post was published.');
    } else {
      alert('Post was not published.');
    }
  }
);

提前致谢。

##更新##

感谢Sahil Mittal的贡献,我制定了这个相当合理的解决方案:

`

var jqxhr = $.get( "http://graph.facebook.com/"+$("#fbto").val()+"?fields=id", function( data ) {
 // could do something useful here... 
})

.done(function(  data ) {
  // do something else useful useful, in this case finish posting stuff to the wall 
})

.fail(function(  data ) {
 // thrown if the user doesn't exist
})

.always(function(  data ) {
  // etc... 
})

`

现在,这是一个jQuery 1.8。*解决方案,我还应该在高流量场景中添加它,我不确定FB会如何善待他们的URL来将提交的用户名转换为ID。但是,如果我们到达那里,那将是一座我将愉快地过去的桥梁!

再次感谢Sahil。

1 个答案:

答案 0 :(得分:0)

您无法在username参数中使用to。您必须使用 id

如果你没有id,你可以从用户名本身获得。拨打电话/{username}?fields=id,您将获得响应中的ID。

例如:http://graph.facebook.com/sahilmittal?fields=id

回复是:

{
  id: "595273610"
}

只需获取此id并在 to 参数中使用它。