1

ユーザーのFacebookフレンドリストにアクセスするためにStack Overflowに関する質問がありました。私はこれを行うためにさまざまな方法で試してみましたが、残念ながら私のために何も働いていないようです。JavaScriptのSDKで使用すると、Facebookフレンドリストにアクセスできません

私は直面している問題を誰にでも教えていただけますか?私は全く新しいjavascriptです。以下は私が使用しているコードです

<html> 
    <head> 
     <title>My Facebook Login Page</title> 
    </head> 
    <body> 
    <div id="fb-root"></div> 
    <script> 
     window.fbAsyncInit = function() { 
     var friends = new Array(); 
     FB.init({ 
     appId  : 'some_id', // App ID 
     channelUrl : 'http://apps.facebook.com/myapp', // Channel File 
     status  : true, // check login status 
     cookie  : true, // enable cookies to allow the server to access the session 
     xfbml  : true // parse XFBML 
    }); 

    FB.api('/me/friends', function(response) { 
     if(response.data) { 
      $.each(response.data,function(index,friend) { 
       alert(friend.name + ' has id:' + friend.id); 
      }); 
     } else { 
      alert("Error!"); 
     } 
    }); 

    }; 



     // Load the SDK Asynchronously 
    (function(d){ 
    var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;} 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src = "http://connect.facebook.net/en_US/all.js"; 
    d.getElementsByTagName('head')[0].appendChild(js); 
     }(document)); 
    </script> 

    <p> 
     <fb:profile-pic uid='loggedinuser' facebook-logo='true'/> 
    </p> 
    </br> 
    </br> 
    "Welcome, <fb:name uid='' useyou='false'></fb:name> 
    </br> 

    </br> 
    </br> 



</br> 
</br> 

    </br></br> <fb:login-button autologoutlink="true" /> 

</body> 
</html> 

私は応答が未定義であり、facebookにログインすることさえできません。私は次のサンプルhttp://jobyj.in/api/get-facebook-friends-using-javascript-sdk/を使って試しました。これはデモでうまく動作しますが、それをダウンロードして私のマシンから実行しようとしましたが、それは私に何の結果も与えていません。

私には何か提案がありますか?

更新

私は例の下@Somnathによって与えられ、ログインすることを使用しています。しかしその後、response.sessionの値が未定義になり、友人リストがゼロになりました。これについての任意のアイデア?

+0

ISTは、ログインしてみてください:。 FQLを使用してみてください。 –

+0

FBMLは、あなたは '使用すべきではない、推奨されません。'もう – DMCS

+0

@DMCS、私はその行を削除し、それでも私は、ログインの問題を抱えています。しかし、私のローカルホストURLの代わりにキャンバスのページURL、つまりhttp://apps.facebook.com/app_name/html_pageを入力するとログインできます。何が問題になっていないのか – tejas

答えて

3

ここはjavascriptによるログインのチュートリアルです。

Tutorial Javascript SDK

ISTはそれ以外の場合は、あなたが未定義の応答を取得します。ログインしてみてください。

FB.getLoginStatus(function(response) { 
     if (response.session) { 
      // logged in and connected user, someone you know 
      FB.api('/me/friends', function(response) { 
       if(response.data) { 
       $.each(response.data,function(index,friend) { 
        alert(friend.name + ' has id:' + friend.id); 
       }); 
       } else { 
        alert("Error!"); 
        } 
      }); 
     } 
    }); 

ログインしたユーザーのフレンドリストが表示されます。

更新回答: は、初期化時にchannelUrlを指定しないでください。以下の4つのパラメータだけを与えます。これを試してみてください。

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

アップデート2:そうでなければあなたは未定義の応答を取得します

if (response.session) { 

//getting current logged in user's id from session object 

globaluserid=response.session["uid"]; 

//fetching friends uids from 'friend' table. We are using FB.api syntax 

FB.api( 

{ 

method: 'fql.query', 

query: 'SELECT uid1 FROM friend WHERE uid2='+globaluserid 

}, 

function(response) { 

//once we get the response of above select query we are going to parse them 

for(i=0;i<response.length;i++) 

{ 

//fetching name and square profile photo of each friends 

FB.api( 

{ 

method: 'fql.query', 

query: 'SELECT name,pic_square FROM user WHERE uid='+response[i].uid1 

}, 

function(response) { 

//creating img tag with src from response and title as friend's name 

htmlcontent='<img src='+response[0].pic_square+' title='+response[0].name+' />'; 

//appending to div based on id. for this line we included jquery 

$("#friendslist").append(htmlcontent); 

} 

); 

} 

} 

); 

} else { 

// no user session available, someone you dont know 

top.location.href="../kfb_login.php"; 

} 
+0

もログインできません。 Facebook APIエラーコード191とAPIエラーが表示されます。説明:指定されたURLはアプリケーションによって所有されていません。 エラーメッセージ:無効なredirect_uri:指定されたURLはアプリケーション構成エラーで許可されていません。私は自分のウェブサイトのURLをhttp://192.168.100.IP:8085 /と設定しています。これは上記のURLを使用して私のlocalhost URLとチャンネルURLです。でもまだログインできません – tejas

+0

@tejas:更新された回答を確認してください。 –

+0

私は試しましたが、まだログインできません。私がアプリに集中する必要がある余分な設定はありますか?私は通常の設定を設定しました – tejas

関連する問題