2010-12-30 13 views
3

私はこれに私の尾を追いかけてきました!そしてそれはとても簡単でなければなりません!!Facebook APIからbirthday_dateを読み取る方法

私はうまく動作しているFaceBookのアプリを持っています。しかし、私はユーザーの誕生日を取得する必要があります。私は正常に拡張アクセス許可の要求を持っていますが、birthday_dateをデータベースから取り出すことはできません。

<?php 
require_once('facebook.php'); 
$facebook = new Facebook(array(
'appId' => 'xxxxx', 
'secret' => 'yyyyyyy', 
'cookie' => true 
)); 
if ($facebook->getSession()) { 
$uid = $facebook->getUser(); 
$fbme = $facebook->api('/me'); 
} else { 
$params = array(
    'fbconnect'=>0, 
    'canvas'=>1, 
    'req_perms'=>'publish_stream','email','user_location','user_birthday' 
); 
$loginUrl = $facebook->getLoginUrl($params); 
print "<script type='text/javascript'>top.location.href = '$loginUrl';</script>"; 
} 
$session = $facebook->getSession(); 
$token = $session['access_token']; 

拡張パーミッションを読み込んで結果を変数に配置するPHPコードを誰かに見せていただければ幸いです。

おかげでスティーブ

答えて

2

コードのセクション...

if ($facebook->getSession()) { 
$uid = $facebook->getUser();   
$fbme = $facebook->api('/me');   
} else {   
$params = array(  
'fbconnect'=>0, 
'canvas'=>1,  
'req_perms'=>'publish_stream','email','user_location','user_birthday' 
); 

を読むべき....

if ($facebook->getSession()) { 
$uid = $facebook->getUser();   
$fbme = $facebook->api('/me');   
} else {   
$params = array(  
'fbconnect'=>0, 
'canvas'=>1,  
'req_perms'=>'publish_stream,email,user_location,user_birthday' 
); 

( 'req_perms' 行にノートの変更)の誕生日が、その後

として読み取ることができます
$birthday=$fbme['birthday']; 

ただし、ユーザーが誕生日情報を共有していない場合、$ fbme ['birthday']はNULLを返す可能性があります。

この問題は、拡張アクセス許可を要求するコード行によって発生しましたが、ストリームを公開して電子メールアドレスにアクセスできるため、拡張アクセス許可があると考えました。

ジョシュアにも感謝します!自分の生年月日は私の友人にしか見えず、コーディングを修正しても表示されませんでした。

Facebook API - あなたはただそれを愛する必要があります!

3

それは(新しいAPIで)唯一の誕生日だ何birthday_dateはありません。

http://developers.facebook.com/docs/reference/api/user

それはあなたがパーマを持っている場合でも、nullを返すことがあります。この(本当に)バグを参照してください:それの

http://bugs.developers.facebook.net/show_bug.cgi?id=12166

概要がある(それは本当にバグではありません):あなたのユーザーは、このデータへのアクセスを取り消している可能性があります。

+0

これは、私が必要とする情報が得られない理由を説明するかもしれません。しかし、すべてのドキュメントでは、birthday_date、friends_birthday、およびuser_birthdayについてのhttp://developers.facebook.com/docs/authentication/permissionsを参照しています。誕生日については言及していません。しかし、私は自分のユーザーアカウントから情報を得ることさえできないので、明らかに私のPHPは間違っています! – Steve

+0

また、ドキュメントにバグがありました。私はバグレポートを提出し、修正しました。権限のドキュメントを見れば、正しいものになります –

0

これは、Linuxで動作

がNOW $を=(日付+ "%はm /%dの")

カール「https://api.facebook.com/method/fql.query?access_token= [ACCESS_TOKEN] &クエリー= SELECT%20 first_name、uid%20from%20user%20where%20uid%20in%20(SELECT%20uid2%20from%20friend%20where%20uid1 = [YourFaceID])AND%20substr(birthday_date、0.5) %20 ==%20 '$ NOW' "

1

これは便利な機能ですが、なぜそれがうまくいかないのか不思議に思われる場合は、個人ページからアプリを削除してアプリを再認証してみてください。

「アカウント - >プライバシー設定 - >「アプリケーションとウェブサイト」 - >設定を編集する」リストからあなたのアプリを削除してください。

関連する問題