2011-08-08 26 views
11

PHP 3.0 SDKにアップデートした後、私のFB.login()機能はもはや私がそれを求める設定をしなくなったのです。他の誰かがこれを取得していますか?ここではあなたのためのいくつかのコードです:Facebook(FB.login)は私の許可を要求していません

window.fbAsyncInit = function() { 
    FB.init({ 
    appId: 'xxx', 
    status: true, 
    cookie: true, 
    xfbml: true, 
    oauth : true // enables OAuth 2.0 
    }); 
    // whenever the user logs in, we refresh the page 
    //FB.Event.subscribe('auth.login', function() { 
    // window.location.reload(); 
    //});  
}; 


FB.login(function(response) { 
    if (response.authResponse) { 
    console.log('Welcome! Fetching your information.... '); 
    FB.api('/me', function(response) { 
     console.log('Good to see you, ' + response.name + '.'); 
     FB.logout(function(response) { 
     console.log('Logged out.'); 
     }); 
    }); 
    } else { 
    console.log('User cancelled login or did not fully authorize.'); 
    } 
}, {scope:'read_stream,publish_stream,offline_access'}); 

私はそれにアクセスしようとしている方法は、onClick="FB.login();"ています。誰も助けることができますか?私はそれを文書化それとして、彼らはまだパーマなく範囲を使用することがわかったJS SDKのソースを確認する

+0

この問題を解決できましたか? – Future2020

答えて

5

。 これは私のために働いています:

...onclick="FB.login(handleLoginResponse, {perms:'email,manage_pages,user_birthday'});return false;"...

私はそれが役立ちます。

+4

この情報は古くなっています。これを試してみると、「Uncaught Error:OAuth2の仕様では、 'perms'が 'scope'と呼ばれるべきです。 –

+1

マイケルは上記のとおりです: 'スコープ'が使用されます。 – Tibor

+0

動作しない、パーマやスコープを持たない –

4

JS SDKでこれに関連するものがあります。 oauth=trueを設定する場合、機能

FB.login(function (response) { 
    if (response.authResponse) { 
     console.log('Welcome! Fetching your information.... '); 
    } else { 
    console.log('User cancelled login or did not fully authorize.'); 
} 
}, { scope: 'email,publish_stream,user_birthday,user_location' }); 

が正しく拡張された権限を要求したが、scope="email,publish_stream,user_birthday,user_location"<fb:login-button>FBXMLを使用していません。

これは、私はそのあなたがFB.loginブロック内FB.logoutを呼び出しているためだと思う...私にはFacebookのバグのよう

1

を探します。

効果的には、ログインするとすぐにログアウトされます。

だから、このようにそれを区切る:

// CALLED WHEN USER LOGS IN 
function userLogin() { 
    FB.login(function(response) { 
     if (response.authResponse) { 
      console.log('Welcome! Fetching your information.... '); 
      FB.api('/me', function(response) { 
       console.log('Good to see you, ' + response.name + '.'); 
      }); 
     } else { 
      console.log('User cancelled login or did not fully authorize.'); 
     } 
    }, {scope:'read_stream,publish_stream,offline_access'}); 
} 

// CALLED WHEN USER LOGS OUT 
function userLogout() { 
    FB.logout(function(response) { 
     console.log('Logged out.'); 
    }); 
} 
0

私はそれがブラウザ/ Facebookのキャッシングの問題の問題だったことを実現するまで私はまったく同じ問題を抱えていました。あなたのウェブスペースに最新のコードがあることを確認し、問題の解決策がある場合は新しいブラウザでアプリをテストしてください。

2

私の問題はあなたと似ていました。 FB.login定義でスコープが良好かどうかを確認するために、すべてのjavascriptをチェックしました。 最後に、自分のHTMLにFacebookのボタンがあることに気付きました。私もFBボタンでスコープを定義したとき、私は私のスコープを変更した場合

<form class="form-signin"><fb:login-button size="large">Facebook</fb:login-button></form> 

は、Facebookは新しい権限を受け入れるようにcorrecty私に尋ねる

<form class="form-signin"><fb:login-button size="large" scope="<?php print($sFacebookScope);?>">Facebook</fb:login-button></form> 
+0

これは唯一の解決策です! XFBMLボタンにscope属性が必要です!これはドキュメンテーションでは言及されておらず、コードサンプルは不完全です。 –

0

私は入れていたために働いている唯一のソリューションこのようなログインボタンのタグのアクセス許可:

<fb:login-button show-faces="true" width="200" max-rows="1" data-scope="email">< /fb:login-button>

関連する問題