我试图从我的facebook页面获取所有的饲料白色的JavaScript API。 有没有人有一个工作的例子?用javascript api在我的网页上显示我的来自Facebook的提要?
我已经尝试过,但我不能得到它的权利,我可以从相册中获得照片,但我不能得到饲料,我不知道我做错了什么。
任何输入真的很感激。谢谢!
我有这样的代码:
编辑
OK,我有初始化代码中的代码如下图所示,它不工作,不执行代码和我没有得到任何错误:
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '<%=facebookAppId%>', // App ID
channelUrl : 'www.mypage.se/channel.html', // Channel File
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
oauth : true
});
// get the wall - feed
var page_id = '<%=facebookPageId%>';
FB.api('/' + page_id, {fields: 'access_token'}, function(resp2) {
if(resp2.access_token) {
alert(resp2.access_token);
FB.api('/page id/feed?access_token='+resp2.access_token, function(response) {
var ul = document.getElementById('feed');
for (var i=0, l=response.data.length; i<l; i++) {
var
feed = response.data[i],
li = document.createElement('li'),
a = document.createElement('a');
a.innerHTML = feed.message;
a.href = feed.link;
li.appendChild(a);
ul.appendChild(li);
}
});
}
});
};//end window.fbAsyncInit
// Load the SDK Asynchronously
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
</script>
所以我为什么会有例如: FB.api( '/ Facebook的ID',函数(重警报('你的名字是'+ response.name); }); 里面的init代码而不是其他代码?
我仍然需要一些结构帮助在页面上写出回调,所以它看起来不错,因为它在Facebook上。 我喜欢写出“消息,图片,链接,名称”,也许还有别的吗?
正如我测试获取这个例子中的消息,并且一些回调在页面上显示为“undefined”?这是否意味着我收到消息时没有任何价值? 如果是这样我怎么能不写出emty值 - 未定义的?
谢谢!
UPDATE:
如果我用这个代码,然后它会读取的饲料,但只有林登陆到Facebook? 我开始感到困惑,因为我认为上面的代码应该可以工作: 我首先在第一次调用时要求访问令牌,当我得到访问令牌时,然后在第二次调用中使用它,我在做什么错误?
FB.api('/my userid or pageid/feed?access_token=the acces token that I get from the Graph API Explorer', {limit:5} , function(response){
if (response && response.data && response.data.length){
alert(response.message);
var ul = document.getElementById('feed');
for (var j=0; j<response.data.length; j++){
var feed = response.data[j],
li = document.createElement('li'),
a = document.createElement('a');
a.innerHTML = feed.message;
a.href = feed.link;
li.appendChild(a);
ul.appendChild(li);
}
}
});
- 我得到几个不确定的答复,我怎么能不把它们写出来的页面上?
- 即使访问该网页的用户没有登录到Facebook,我如何才能获得上述代码的工作?
- 我拨打其他电话,可以毫无问题地获取相册中的照片并将其显示在网页上,我不明白为什么不同?
- 如果我想为客户进行设置(完成时),我需要采取哪些步骤?有点困惑... :-)
- 我想通过电话 得到消息,图片,喜欢等,并显示它就像它在饲料墙上,这里的任何建议吗?
好吧,我终于得到了它:-) 工作,我得到了正确的存取权限令牌,现在我可以显示饲料。 我在这里得到了正确的标记: https://graph.facebook.com/oauth/access_token?client_id=myapp_id&client_secret=myapp_secret&grant_type=client_credentials 现在我可以使用下面的代码获取用户订阅源和页面订阅源,只需更改page_id!
var page_id = '<%=facebookPageId%>';
var pageaccessToken='xxxxxxxxxxxxxxxxxxxxxxxxxx';
FB.api('/' + page_id + '/feed?access_token='+ pageaccessToken, {limit:5} , function(response){
if (response && response.data && response.data.length){
var ul = document.getElementById('pagefeed');
for (var j=0; j<response.data.length; j++){
var feed = response.data[j],
li = document.createElement('li'),
a = document.createElement('a');
a.innerHTML = feed.message;
a.href = feed.link;
li.appendChild(a);
ul.appendChild(li);
}
}
});
好吧,现在它的工作,但我得到了未定义的响应? 这是什么原因造成的,是因为它是一个空值,我得到了回应? 我该怎么做才能使它不显示在页面上?
你能分享一些代码吗? – Neelam 2012-03-12 12:33:54
你有“read_stream”权限吗? – 2012-03-12 13:18:31
是的,我拥有所有权限。 – 2012-03-12 16:29:38