2013-05-26 1 views
1

API Javascript на Facebook не работает на холсте, но отлично работает при прямом доступе к приложению. Я получаю ошибку «Ошибка доступа к требованию для запроса этого ресурса» всякий раз, когда я пытаюсь сделать запрос в facebook. Я попробовал getLoginStatus, но callback никогда не вызывается в холсте. Однако он вызывается на прямой веб-странице. См. Этот код:Facebook: «Для доступа к этому ресурсу требуется токен доступа»

window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : '{{ app_id }}', // App ID 
     status  : true, // check login status 
     cookie  : true, // enable cookies to allow the server to access the session 
     xfbml  : true, // parse XFBML 
     frictionlessRequests : true 
    }); 

    console.log("INIT"); 

    FB.getLoginStatus(function(response) { 
     alert("GOT STATUS"); 
     alert(response); 
    },true); 
}; 

(function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) return; 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/en_US/all.js"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 

«INIT» всегда выводится, но оповещения вызывается только при прямом доступе к странице.

Edit: Вот проблематичное приложение: https://apps.facebook.com/quirkyversaries/

Проблема возникает при попытке создать новый повод и поиск друзей. Поиск невозможен из-за проблемы, описанной выше. Он также терпит неудачу, когда вы пытаетесь создать событие страницы, поскольку страницы не загружаются.

+0

Идентификатор приложения, который вы вставляете в код JS так же, как и приложение, которое вы фактически загружаете в холст? Можете ли вы дать нам ссылку на ваше приложение на FB? – CBroe

+0

Да, идентификатор приложения верен. Я отключу режим песочницы и отправлю ссылку в вопрос ... –

+0

Ну, поиск работает нормально, когда я пытался. –

ответ

1

1) приложение будет либо призывает callback function, или он будет перенаправлять на redirect_url так, в случае, если вы указали redirect_url, любезно удалить

2) в соответствии с docs

  • вы должны subsscribe к событию auth.statuschange

    FB.Event.subscribe('auth.statusChange', function(response) { 
    // do something with response 
    }); 
    
  • неправильной практикой является включение true в конце функции getLoginStatus, поскольку вы вызываете ее при каждой загрузке страницы. эта истина заставляет обратный вызов. Поскольку у вас есть status:true в fb.init, вам может не понадобиться
+0

Извините, но я не понимаю, что вы подразумеваете под первой частью, и я попробовал 'FB.Event.subscribe ('auth.statusChange' ...', но callback не вызывается. –

+0

вы упомянули о любом redirect_url для вашего входа в fb? можете ли вы ввести URL-адрес, который вы нажимаете напрямую? ссылка в вашем вопросе дает 404 –

+0

Проблема возникает в локальной версии, а перенаправление - это http://0.0.0.0:5000/login. –

 Смежные вопросы

  • Нет связанных вопросов^_^