你好我有一个问题,因为我是新手来创建facebook应用程序。 我正在使用javascript sdk创建一个基本应用程序,仅用于向用户发送通知。
我有下面的代码。
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
var uid = response.authResponse.userID;
accessToken = response.authResponse.accessToken;
FB.api('/me', function(info) {
$('#welcome').html("Hello there " + info.birthday );
});
} else if (response.status === 'not_authorized') {
//User is logged into Facebook, but not your App
var oauth_url = 'https://www.facebook.com/dialog/oauth/';
oauth_url += '?client_id=xxxxxxxx'; //Your Client ID
oauth_url += '&redirect_uri=' + 'https://apps.facebook.com/xxxxxxx/'; //Send them here if they're not logged in
oauth_url += '&scope=user_about_me,email,user_location,publish_actions,user_birthday,publish_stream';
window.top.location = oauth_url;
} else {
// User is not logged into Facebook at all
window.top.location ='https://www.facebook.com/index.php';
} //response.status
}); //getLoginStatus
}; //fbAsyncInit
当用户登录并且未授权将授权窗口和工作时。 当用户登录并且授权正在工作时。 但是当用户未获得授权且未登录到Facebook时,应用程序会将我重定向到登录用户的页面,但是在没有再次重定向到应用程序以检查是否已获得授权之后。
有人可以帮我这个吗?怎么做。 谢谢
答案 0 :(得分:0)
你这样做对自己来说太难了。使用FB.login进行登录过程:https://developers.facebook.com/docs/reference/javascript/FB.login/v2.1
但是不要在FB.getLoginStatus的(异步)回调函数中使用它,它应该总是通过用户交互直接调用。
顺便说一下,publish_stream
已弃用多年,publish_actions
涵盖相同的权限。不知道你从哪里获得了这些代码,但我强烈建议使用官方的Facebook文档。
但要小心publish_actions
。不允许同时重新获取读取和写入权限。只在您需要之前请求publish_actions - 尽管您不需要它来发送通知。有关通知的详细信息,请参阅这些链接:
第二个是德语,但代码是相关的部分。请务必仔细阅读Facebook文档中的整篇文章,其中包含许多重要信息。