我包括这样的FaceBook JS SDK:
<script src="http://connect.facebook.net/en_US/all.js">
但最终我在FireBug中遇到了这个错误:
FB.getSession incompatible with OAuth2. http://connect.facebook.net/en_US/all.js
我完全迷失了。我一直试图弄清楚自昨天以来发生了什么,但没有运气。我做错了吗?
答案 0 :(得分:3)
不再使用Get Session功能。 FB.getAuthResponse方法是FB.getSession方法的替代方法,该方法在迁移到OAuth 2.0后已弃用。
https://developers.facebook.com/docs/reference/javascript/FB.getAuthResponse/
答案 1 :(得分:1)
请参阅https://developers.facebook.com/docs/oauth2-https-migration/ - 您可能需要重新访问Javascript和身份验证文档 - 10月1日强制执行的oauth迁移已打开,这将破坏不合规的应用
答案 2 :(得分:0)
尝试以下修改:
1) Upgrade to Facebook PHP SDK 3.1.1 (if you are using that)
2) Modify <fb:login-button> "perms" attribute to "data-scope"
Before:
<fb:login-button perms="email" on-login="my_function_login_complete(arguments)">
Facebook Logon
</fb:login-button>
After fix:
<fb:login-button data-scope="email" on-login="my_function_login_complete(arguments)">
Facebook Logon
</fb:login-button>
3) Replace JavaScript function call "FB.getSession" for "FB.getAuthResponse"
4) Alter JavaScript function parameter "response" in "FB.login()"
a) response.session => response.authResponse
b) response.session.access_token => response.authResponse.accessToken
Before:
FB.login(function(response) {
if (response.session) {
console.log("User is connected to the application.”);
var accessToken = response.session.access_token;
}
});
After fix:
FB.login(function(response) {
if (response.authResponse) {
console.log("User is connected to the application.”);
var accessToken = response.authResponse.accessToken;
}
});
5) Alter JavaScript function parameter "response" in "FB.getLoginStatus()"
a) response.session.user_id => response.authResponse.userID
b) response.session.access_token => response.authResponse.accessToken
Before:
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
var uid = response.session.user_id;
var accessToken = response.session.access_token;
...
After fix:
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
var uid = response.authResponse.userID;
var accessToken = response.authResponse.accessToken;
...
此处有更多详情: https://developers.facebook.com/blog/post/503 https://developers.facebook.com/blog/post/525
祝你好运! :)