2011-08-13 18 views
0

私は現在PHPを学んでおり、友人リストなどのFacebookの基本要素を組み込み、Webショップを構築するよりも楽しいことをやりたいのです。しかし、私はFacebook上のガイドに従って、アプリを追加し、私が望むものを表示するキャンバスを得ましたが、Facebookからデータを取得するにはどうしたらいいですか?私はこれをダウンロードしたhttps://github.com/facebook/php-sdk#readmeと私は私のプロジェクトに追加しました。PHPでFacebook APIを使用

たとえば、自分のプロファイルからデータを取得するにはどうすればよいですか? JSONを解析する必要はありますか? PHP SDKのAPIはどこですか?このhttp://developers.facebook.com/docs/reference/api/はここでGETユーザIDの一部のように見えない:右方向に

require 'php-sdk/src/facebook.php'; 

$facebook = new Facebook(array(
    'appId' => 'YOUR_APP_ID', 
    'secret' => 'YOUR_APP_SECRET', 
)); 

// Get User ID 
$user = $facebook->getUser(); 

任意の点は非常にいただければ幸いです。 JSONをパースする必要はありません

+0

関連:http://stackoverflow.com/questions/6960376/incorporating-facebook-login -using-facebook-php-sdk-v-3-0-0-with-sessions-と –

答えて

1

、あなたはAPIリクエストをやって行かなければならないでしょう:

try { 
    $user_profile = $facebook->api('/me'); 
} catch (FacebookApiException $fbException) { 
    die('Houston, we got problems.'); 
    return; 
} 

これは、あなたが許可を以前に要求したすべての単一の要素を含む$のUSER_PROFILEのいずれかであなたを残して(first_nameなど)、連想配列(この場合は$user_profile)に入れます。 明らかに、getUser()の成功または失敗をチェックする必要があります(0を返した場合は失敗します)。そうでない場合は、API呼び出しがあたかもログアウトしたかのように動作します。

+0

このリンク:http://developers.facebook.com/docs/reference/api/最初の例を見ると: "名前"、 "タイプ"、 "ウェブサイト" ...連想配列のキーですか? – LuckyLuke

+0

さて、はい、それはあなたがページをリクエストしていることを意味します。実際のユーザー情報(提供されている例など)については、https://graph.facebook.com/btaylor(APIなどを使用してログインした場合は情報が異なることに注意してください) –

+0

Okeyしかし、連想配列を返すとはどこから言われますか?どのAPIを見ていますか?どのように私は知るべきですか? – LuckyLuke

0

PHP SDKに含まれているexample.phpを見たことがありますか?グラフAPIを使用してログインを行い、基本データを取得する方法を示します。ダイアログがアプリケーションに表示されるパーミッションを作り、あなたはこのような何かを行うことができます与えられたユーザーのアクセストークンを取得するには:

$app_id = "..."; 
$app_secret = "..."; 
$my_url = "..."; 

//session_start(); 

@$code = $_REQUEST["code"]; 

if(empty($code)){ 
    $dialog_url = 
      "http://www.facebook.com/dialog/oauth?client_id=" 
      . $app_id . "&redirect_uri=" . urlencode($my_url) . "&state=" 
      . $_SESSION['state'] 
      . "&scope=email,user_birthday,user_hometown,user_interests,user_location,user_online_presence,user_photos,user_status,publish_stream"; // Scope defines permissions 

    echo("<script> top.location.href='" . $dialog_url . "'</script>"); // Redirect 
} 

$token_url = "https://graph.facebook.com/oauth/access_token?" 
     . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url) 
     . "&client_secret=" . $app_secret . "&code=" . $code; 

$response = file_get_contents($token_url); 
$params = null; 
parse_str($response, $params); 

$graph_url = "https://graph.facebook.com/me?access_token=" . $params['access_token']; 

$testuser = json_decode(file_get_contents($graph_url)); 

if($testuser != null){ 
    // Do stuff 
+0

この例は完全に非生産的です。 PHP SDK 3.0.1は、getLoginUrl()とgetLogoutUrl()の使用により、より良い方法を提供します。公式の方法は、CSRFトークンの使用を実装するので、より安全です。 –

+0

はい、私はこのコードが古くなっていることを知っています。したがって、最新のSDKが提供されているサンプルへの参照。アクセス許可ダイアログを取得してプロパティにアクセスする方法を示します。あなたがfacebookアプリケーションのコンテキストで自動的に 'getLoginUrl()'を起動する解決法を知っていれば、大歓迎です。 –

+1

これは、getLoginUrlを使用してパーミッションを持ち出すための同等のコードです: $ loginUrl = $ facebook-> getLoginUrl(array( 'scope' => '電子メール、user_birthday、user_hometown、user_interests、user_location、user_online_presence、user_photos、user_status、publish_stream' )); ' –

関連する問題