我正在尝试为facebook api使用JS接口,这是我的第一个应用程序。 这是一个片段:
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'});
按预期工作。 请你帮助我好吗? 谢谢!
答案 0 :(得分:2)
如果您通过response
you'll see what's wrong记录了console.log(response)
变量:
您将收到包含此消息的错误对象:
"An active access token must be used to query information about the current user."
因此,如果您想获取有关当前用户的信息,您还必须发送一个访问令牌。要获得有关此内容的更多信息,请查看Facebook JS SDK页面。
答案 1 :(得分:1)
在致电FB.api('/ me',...)之前,您需要确保用户已登录Facebook并授权您的应用。
以下是一般信息:http://developers.facebook.com/docs/guides/web/#login
答案 2 :(得分:0)
要解决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);
});
}
});