2012-02-19 18 views
0

私はFacebook’s online documentation for app developmentの助けを借りて、私の最初のFacebookアプリに取り組んでいます。Facebook Appの年齢とユーザー名のリクエスト方法は?

私が直面する問題は、認証中にユーザーの性別と名前が必要なことです。上のリンクで利用可能なスクリーンショットは、ユーザーから要求している「基本情報」に両方の情報が含まれていることを示しています。 しかし、私はそれらを取得する方法がわかりません、彼らは私が推測するJSON配列にありますが、私はJSONに慣れていません。

<?php 

    $signed_request = $_REQUEST["signed_request"]; 
    list($encoded_sig, $payload) = explode('.', $signed_request, 2); 
    $data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true); 
    if (empty($data["user_id"])) { 
    echo("<script> top.location.href='" . $auth_url . "'</script>"); 
    } else { 
    echo("<b class=\"welcome\">Welcome " . $data["user_id"] . ",</b><br/>"); 
    } 
?> 
+1

最終時間:

は、このコードを試してみてください。それは年を持っている可能性があります...私は日/月の順序もlang/countryにおそらくそう簡単な作業に応じて変更することができると思う... – jribeiro

答えて

0

お誕生日データを取得したい場合は、getLoginUrlメソッドのパーミッションを追加する必要があります。

print_r($ data)の出力は配列(基本情報+誕生日)になります。誕生日フィールドと日付機能を使用して、ユーザーの年齢を計算することができます。

詳細Facebook permissionsについては、私はあなたが...あまりにも多くの異なる組み合わせを誕生日のフィールドを信頼していない可能性が確認され

<?php 
$config= array('appId'=>APP_ID, 'secret'=>APP_SECRET); 
$facebook= new Facebook($config); 
$user_id= $facebook->getUser(); 
if($user_id){ 
    try { 
     $data= $facebook->api('/me'); 
      print_r($data); 
     }catch(FacebookApiException $e){ 
     $user_id = null; 
     $e->getType(); 
     $e->getMessage(); 
    } 
} 
if($user_id){ 
    $href= $facebook->getLogoutUrl(); 
    $text= "LogOut"; 
}else{ 
    $permission= array('scope'=>'user_birthday'); 
    $href= $facebook->getLoginUrl($permission); 
    $text= "LogIn"; 
} 
?> 
<a href="<?php echo $href; ?>"><?php echo $text; ?></a> 
+1

https://developers.facebook.com/docs/authentication/permissions/から余分な許可を得て年齢層を取得できるので、これは質問に対する正しい答えだとは思わない。デフォルトでは、これには、ID、名前、画像、性別、ロケール、年齢の範囲など、Userオブジェクトの特定のプロパティが含まれます。 – pal4life

+0

例を挙げて、わかりやすい方法があれば教えてください。 –

1

データのソースはdocumentationに係るユーザに関するプロパティの限られたセットを有する署名済みの要求、(リストがそのリンクである)です。

ユーザーまたはその友人に関する詳細なデータを入手するには、APIリクエストを行う必要があります。 情報の一部は、ユーザがそれを承認した後など、アプリケーションに付与されています、ユーザーはあなたが認証 ダイアログで彼らの基本的な情報にアクセスすることを可能にするとき、あなたは自分のユーザーIDへのアクセスを持っている

名プロフィール画像、 性別、年齢、ロケール、ネットワーク、ユーザーID、友だちのリスト、および彼らが公開した その他の情報

と:

ユーザーから特定の権限を依頼する必要があるユーザーまたはその 友人に関する追加情報へのアクセスを取得するには。

(ここで続きを読む:http://developers.facebook.com/docs/reference/api/permissions/を)。

性別と名前だけを希望する場合は、/私にここに記載のようにリクエストしてください:http://developers.facebook.com/docs/reference/api/user/他の権限を問う必要はありません。

EDIT

したい場合は、いくつかのコードスニペットは、このスレッドを試してみてください。Get user's name from Facebook Graph API

+0

あなたは、ユーザーが余分な私の場合、ユーザーは私のアプリを許可しており、アプリは彼のuser_idを取得することができますが、私は名前などの他の情報を取得する方法を混乱させています。ユーザーの性別など – Maven

+0

グラフのapiリクエストを作成します。たとえば、ユーザー名を取得するには、次のようにします。* echo json_decode(file_get_contents( 'http://graph.facebook.com/1157251270')) - > name;私の元の投稿にする –

関連する問題