8

Facebook JavaScript SDK を使用して認証機能を実装しようとしています。実行してコンソールを確認すると、エラーが表示されます。

uncaught TypeError: Cannot read property 'userID' of undefined 

コードスニペット

<div id="fb-root"></div>
<!-- Load the Facebook JavaScript SDK -->
<script src="//connect.facebook.net/en_US/all.js"></script>
<script>
var appId = 'APP_ID';
var uid;

// Initialize the JS SDK
FB.init({
 appId: '413026618765431',
 cookie: true,
});

// Get the user's UID
FB.getLoginStatus(function(response) {
 uid = response.authResponse.userID ? response.authResponse.userID : null;
});

function authUser() {
 FB.login(function(response) {
   uid = response.authResponse.userID ? response.authResponse.userID : null;
 }, {scope:'email,publish_actions'});
}
</script>
4

3 に答える 3

4

アプリが承認されていない場合、応答オブジェクトにはプロパティが含まれないauthResponseため、表示されているエラーが発生します。

あなたが欲しいのは

uid = response.authResponse 
  ? response.authResponse.userID 
  : null;

または単に

uid = response.authResponse && response.authResponse.userID || null;

または単に

uid = response.authResponse && response.authResponse.userID;
于 2012-12-19T04:07:39.023 に答える
2

ここに私のために働くコード行があります(iOSおよびAndroid):

var uid = response.authResponse.userID || response.authResponse.userId;

Android では userID が定義されていませんでしたが、iOS では userId が定義されていません。

于 2013-09-21T03:18:41.367 に答える
1

response.authResponse.userId を試しましたか?

于 2013-03-08T20:31:17.587 に答える