Facebook Error – Oauth2 specification states that ‘perms’ should now be called ‘scope’.

По состоянию на 13 декабря 2011, JavaScript SDK теперь поддерживает только OAuth 2.0 для проверки подлинности.

Возможность включения OAuth 2.0 в JS SDK был впервые представлен в июле. Все приложения были даны до 1 октября 2011 для тестирования и миграции. Нужно заменить response.session на response.authResponse . Чтобы обратиться за разрешениями, сейчас пользуем ‘scope’, а не ‘perms’.

Необходимые изменения:

1) response.session должен быть изменен на response.authResponse

Было:

FB.login(function(response) {

if (response.session) {

console.log («Пользователь подключается к приложению.»);

var accessToken = response.session.access_token;

}

});

Стало:

FB.login(function(response) {

if (response.authResponse) {

console.log («Пользователь подключается к приложению.»);

var accessToken = response.authResponse.access_token;

}

});

2) auth.sessionChange меняем на auth.authResponseChange

3) ‘perms’ меняем на ‘scope’

FB.login(function(response) {
if (response.authResponse) {
var sessionData = {};
sessionData.access_token = response.authResponse.accessToken;
sessionData.expires = response.authResponse.expiresIn;
onSuccess(sessionData);
} else {
onCancel();
}
}, { scope: ’email, user_hometown, user_location, user_website, user_birthday’ });