2010-04-30 55 views
1

我想从Facebook使用javascript api获取我的状态。我有以下代码:facebook javascript api

<div id="fb-root"></div> 
<div id="data"></div> 
<script src="http://connect.facebook.net/en_US/all.js"></script> 
<script type="text/javascript"> 

(function(){ 
    FB.init({ 
     appId : 'SOME ID', 
     status : true, // check login status 
     cookie : true, // enable cookies to allow the server to access the session 
     xfbml : true // parse XFBML 
    }); 
}); 
getData(); 


function getData(){ 
    var query = FB.Data.query('SELECT message FROM status WHERE uid=12345 LIMIT 10'); 


    query.wait(function(rows) { 
     for(i=0;i<rows.length;i++){ 
      document.getElementById('data').innerHTML += 'Your status is ' + rows[i].message + '<br />'; 
     } 
    }); 
} 

</script> 

当我试图让我的名字工作正常,但状态不工作。有人可以告诉我我做错了什么,因为这个文件是可怕的。是的,我用假的替换了UID,是的,我把我的应用ID,因为就像我说,当我试图让我的名字工作正常。任何帮助表示赞赏。

+0

“不工作”,如在什么? Javascript错误/ API错误?你在Firebug中看到了什么:请求是否真的被做出来了?如果是这样,那么响应包含什么内容? – Matt 2010-04-30 23:09:05

回答

1

您需要为用户提供“read_stream”扩展权限。在这里看到:http://developers.facebook.com/docs/authentication/permissions

read_stream - 在用户的新闻饲料可以访问所有 的职位和 使您的应用程序执行 搜索对用户的News Feed广告

到请求的权限,看到这里:

在上面的例子中,OAuth的:http://developers.facebook.com/docs/authentication/特别是约请求附加权限部分过程将返回 活动Facebook用户的用户ID,您可以通过图形API从中获取 用户配置文件的所有公共部分。正如 上面提到的,如果你需要获取配置文件中的 私人数据,或者如果你想 请求权限发布 至Facebook代表用户的,你 将需要请求延长 权限。

要通过OAuth请求权限,使用 范围参数在 授权请求,并包括要请求所有 权限的 逗号分隔的列表。对于 例如,该授权请求 请求访问用户的照片 和视频,并请求允许 发布到用户的信息流在他们的 代表:

https://graph.facebook.com/oauth/authorize?client_id=...&redirect_uri=http://www.example.com/callback&scope=user_photos,user_videos,stream_publish 

要求额外延长 权限,您可以重定向到 相同的授权网址,并具有您要请求的所有 权限。我们 会自动排除那些 权限的应用程序已经 对当前用户,并显示出 对话框,要求只有那些 权限还没有被授予 。

+0

如果我只是想在我的网站上显示我的新闻提要,那该怎么办?有点迟钝你可以得到你想要的关于用户的所有信息,但不能拉那些公共信息。 – ngreenwood6 2010-04-30 23:16:28

+0

该帖子未公开。根据定义,只有您的姓名和个人资料图片是公开的,并且可以在没有访问令牌的情况下获取。其他任何事情都需要一个访问令牌,并且需要获取该信息的特定权限。从本质上讲,您需要授权您的网站知道它有权提取您的数据。 Facebook没有其他方式知道你是你。 – 2010-04-30 23:25:16