私は Facebook アプリの専門家ではありません。FB Web サイトからこのコードを取得し、アプリ ID で機能するように変更しました (変更したのはこれだけです。いくつかのアラートも追加しました)。次に、ローカル Web ページからこのコードを使用しようとしました (つまり、ページはデスクトップにありますが、ラップトップはインターネットに接続されています)。
このコードを実行するたびに、「MyAppName でエラーが発生しました。後でもう一度やり直してください。」というエラーを示すブラウザーのポップアップが表示されます。
誰かがここで何が起こっているのか教えてもらえますか? FB.getLoginStatus も呼び出されないようです。
どんな助けでも大歓迎です。
// initialize the library with the API key
FB.init({ appId: 'myAppID',frictionlessRequests:true });
// fetch the status on load
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
// the user is logged in and has authenticated your
// app, and response.authResponse supplies
// the user's ID, a valid access token, a signed
// request, and the time the access token
// and signed request each expire
var uid = response.authResponse.userID;
var accessToken = response.authResponse.accessToken;
} else if (response.status === 'not_authorized') {
alert("1. not");
// the user is logged in to Facebook,
// but has not authenticated your app
} else {
alert("2. alert");
// the user isn't logged in to Facebook.
}
});
$('#login').bind('click', function() {
FB.login(handleSessionResponse);
});
$('#logout').bind('click', function() {
FB.logout(handleSessionResponse);
});
$('#disconnect').bind('click', function() {
FB.api({ method: 'Auth.revokeAuthorization' }, function(response) {
clearDisplay();
});
});
// no user, clear display
function clearDisplay() {
$('#user-info').hide('fast');
}
// handle a session response from any of the auth related calls
function handleSessionResponse(response) {
// if we dont have a session, just hide the user info
alert("entered handleSessionResponse");
if (response.authResponse) {
alert('Welcome! Fetching your information.... ');
FB.api('/me', function(response) {
alert('Good to see you, ' + response.name + '.');
});
} else {
alert('User cancelled login or did not fully authorize.');
}
if (!response.session) {
clearDisplay();
return;
}
}