Ho accesso FB abilitato sul mio sito Web con l'FB JDK. Quando lo uso, funziona perfettamente: si apre la finestra di dialogo, autorizzo, e lo authResponse
è come previsto. Quando viene utilizzato da un altro utente (che non ha ancora autorizzato l'app, ma ha effettuato l'accesso in FB), la finestra di dialogo di accesso viene visualizzata per un breve secondo e scompare immediatamente e l'oggetto risposta ha lo stato not_authorized
. Qualche idea sul motivo per cui la finestra di dialogo potrebbe non chiedere all'autore di autorizzare?La finestra fb.Login() si chiude immediatamente e restituisce 'not_authorized'
Nel mio layout (Haml):
%body
#fb-root
:javascript
window.fbAsyncInit = function() {
FB._https = false;
FB.init({
appId : <App ID>
status : true,
cookie : true,
oauth : true,
xfbml : true
});
FB.getLoginStatus(function(response) {
if(window.reportFBstatus) {
reportFBstatus(response);
}
}, true);
};
// Load the SDK
(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));
Il legame login:
%a{href: '#', onclick: 'FB.login(window.reportFBstatus, {scope: "user_about_me"})'}
Nella CoffeeScript:
window.reportFBstatus = (response) ->
$.ajaxSetup({
headers:
'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
})
console.log response # always shows status=not_authorized for other users
if response.status is 'connected'
auth = response.authResponse
$.post('/login', {fb_id: auth.userID, fb_token: auth.accessToken}, (data) ->
window.currentUser = data
)
Sto riscontrando lo stesso problema. Non riesci a capire la causa principale –