之前通过facebook登录工作正常,没有任何问题。使用Javascript SDK通过Facebook登录是在PHP codeigniter网站上实现的。但在2017年7月更新后,我无法通过Facebook登录网站。
以下是我的代码。亲切协助。
<script type="text/javascript" defer="defer">
window.fbAsyncInit = function () {
FB.init({
appId: "<?php echo $global['facebook_app_id']; ?>", // App ID
channelUrl: "<?php echo base_url(); ?>channel.html", // Channel File
status: true, // check login status
cookie: true, // enable cookies to allow the server to access the session
picture: "http://www.fbrell.com/f8.jpg",
xfbml: true // parse XFBML
});
};
// 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>
function loginMe(path)
{
var params1 = '';
FB.login(function (response) {
if (response.authResponse) {
console.log('Welcome! Fetching your information.... ');
FB.api('/me', function (response) {
var params = "username=" + response.username + "&first_name=" + response.first_name + "&last_name=" + response.last_name + "&email=" + response.email + "&fb_id=" + response.id + "&gender=" + response.gender + "&birthday=" + response.birthday + "&action_type=fb_login";
//var params="email="+response.email;
FB.api('/me/friends', function (response) {
// alert(JSON.stringify(response));
var i = 0;
$.each(response.data, function (key, val) {
i++;
});
params1 = "&facebook_friend_count=" + i;
});
if (typeof (response.email) === "undefined") {
alert('Sorry, there is technical problem to fetch data from facebook, please try again.');
window.parent.location = path;
}
jQuery.ajax({
type: 'post',
url: path + 'login-with-facebook',
data: params,
success: function (msg) {
if (msg != '' && msg != 'fail') {
window.location.href = path + "login-with-fb/" + msg;
}
else
{
if (msg == 'fail')
alert('Sorry, there is technical problem to fetch data from facebook, please try again.');
window.parent.location = path;
}
}
});
});
} else {
//console.log('User cancelled login or did not fully authorize.');
}
}, {"scope": "email,read_stream"});
}
每次输入我的登录凭据后,我都会收到警报“抱歉,从Facebook获取数据存在技术问题,请再试一次。”我无法从Facebook获取用户详细信息。
答案 0 :(得分:0)
https://developers.facebook.com/docs/facebook-login/permissions/#reference-read_stream
user_posts
可能会解决您的问题
https://developers.facebook.com/docs/facebook-login/permissions/#reference-user_posts
答案 1 :(得分:0)
Version 2.3 of the Facebook API was deprecated on July 8, 2017。更新配置代码以使用更高版本,并确保一切仍然有效。您还应该查看upgrade guide中的更改。
以下是the documentation的配置示例:
window.fbAsyncInit = function() {
FB.init({
appId : 'your-app-id',
autoLogAppEvents : true,
xfbml : true,
version : 'v2.10' // <-- Right here
});
FB.AppEvents.logPageView();
};