JavaScript的FB.api - 未定义错误

我想用JS接口Facebook的API,这是我为它的首次应用。 这里是一个片段:

HTML:

<div id="fb-root"></div> <script src="https://connect.facebook.net/ru_RU/all.js"></script> <script type="text/javascript">facebook_init();</script>

JS:

function facebook_init() { FB.init({ appId : '<MY APP ID IS HERE>', channelUrl : '/media/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 }); FB.api('/me', function(response) { alert('Your name is ' + response.name); }); }

channel.html:

<script src="https://connect.facebook.net/ru_RU/all.js"></script>

我已经'你的名字是未定义“当我加载这个页面。 但是这个代码

FB.ui({ method: 'apprequests', message: 'MSG', title: 'TITLE'});

按预期工作。 你可以帮我吗? 谢谢!

--------------解决方案-------------

如果你登录你的response通过可变console.log(response) ,你会看到什么是错的:你会得到这个消息的错误对象:

"An active access token must be used to query information about the current user."

所以,如果你想获得你也必须发送一个访问令牌当前用户的信息。 要获取有关这个检查Facebook的JS SDK页的详细信息。

你需要确保用户已登录到Facebook和授权您的应用程序,你可以调用FB.api之前('/我“,...)。

这里的一般信息:http://developers.facebook.com/docs/guides/web/#login

为了克服与Undefined问题,使用下面的代码:

window.fbAsyncInit = function() {
// init the FB JS SDK
FB.init({
appId : '<APP ID>',
status : true,
xfbml : true
});

// Additional initialization code such as adding Event Listeners goes here

FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
alert("connected");
connecter=true;
FB.api('/me', function(user) {
alert(user.name);
alert(user.first_name);
alert(user.last_name);
alert(user.email);
});

}
});

分类:JavaScript的 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.515 (s). 10 q(s)