Диалоговое окно Facebook не вызывает функцию обратного вызова
Похоже, что метод FB.ui ='oauth' прекратил вызывать нашу функцию обратного вызова на производственном сайте. Вот наш код:
FB.ui(
{
method: 'oauth',
client_id: '[outClienID]',
redirect_uri: '[validRedirect_uri]',
scope:'email, publish_stream',
response_type: 'token',
display: 'popup'
},
function(response) {
FB.getLoginStatus(checkFBConnect, true);
})
Я попытался заменить FB.getLoginStatus простым предупреждением, и оно никогда не вызывалось. Когда я вызываю FB.getLoginStatus(checkFBConnect, true); Вручную из консоли отладки процесс работает как задумано. Это как наша функция (ответ) никогда не вызывается через Facebook.
1 ответ
Выход из параметров *redirect_uri* и *response_type* разрешает это в приложениях canvas/pages:
FB.ui({method: 'oauth',
client_id: fb_app_id,
state: new Date().getTime().toString(),
/*
redirect_uri: location.protocol + '//' + location.host + '/' + app_folder + '/oauth',
response_type: 'token',
*/
scope: 'email,publish_actions'
}, callback);
С другой стороны, если ваше приложение не предназначено для запуска на холсте / странице, то верно, что ваша функция обратного вызова больше не будет вызываться, но вы можете обрабатывать токен oauth непосредственно на странице обратного вызова *redirect_uri*,