ユーザーの「誕生日」と私のウェブサイト上の友人を、Facebook プロファイルから (Facebook 資格情報が提供された状態で) 取得したいと考えています。
Facebook APIを使用してネイティブFacebookアプリでFacebookからこれらの詳細を可能な限り取得するために使用できるFacebook API / Connectの機能ですか。
このデータを自分の DB に保存したいのですが、これを行う前に、ユーザーは Facebook の資格情報と同意を求められます。
だから最近、友達に今日誕生日の人がいるかどうかを確認したいと思っていました。FQL を使用すると、これは非常に簡単です。たとえば、Pierre が親切に提供したソリューションよりも効率的なソリューションが得られるため、FQL をさらに調査することをお勧めします。コードの小さなスニペットを次に示します。
$friends = $facebook->api_client->friends_get();
$uids = "";
foreach($friends as $f) {
$uids .= "uid=$f OR ";
}
$query_uids = substr($uids,0,strlen($query_uids)-4);
date_default_timezone_set('UTC');
$current_date = date("m/d");
echo "<br />Searching for birthdays for the given month/day: $current_date<br />";
$data = $facebook->api_client->fql_query( "SELECT name, uid FROM user WHERE ( ($query_uids) AND strpos(birthday_date,'$current_date') >= 0 )" );
if(count($data) > 0) {
foreach($data as $d) {
print_r($d);
}
} else {
echo "<br />No Birthdays Today<br />";
}
このようなことは簡単に行うことができます。次のように実行できます。
$facebook = new Facebook( $apikey, $secret );
$uid = $facebook->require_login();
$friends = $facebook->api_client->friends_get(); // $friends is an array holding the user ids of your friends
foreach( $friends as $f ) {
$data = $facebook->api_client->fql_query( "SELECT birthday_date FROM user WHERE uid=$f" );
// $data[0] is an array with 'birthday_date' => "02/29/1904"
// see api documentation for other fields and do a print_r
}
require_once('facebook-platform/client/facebook.php');
$facebook = new Facebook(API_KEY, SECRET);
$facebook->require_login();
function getInfo($user_list, $fields)
{
try
{
$u = $facebook->api_client->users_getInfo($user_list, $fields);
return $u;
}
catch (FacebookRestClientException $e)
{
echo $e->getCode() . ' ' . $e->getMessage();
}
}
function getFriendsBirthdays($user_id)
{
$f = $_REQUEST['fb_sig_friends'];
$f = explode(',', $f);
$birthdays = array();
foreach($f as $friend_id)
{
$birthdays[] = getInfo($friend_id, 'birthday');
}
return $birthdays;
}
そのようなことを行うか、BatchAPIを使用して一度に複数の呼び出しを行います。FacebookAPIを確認してください。
API 経由で取得することもできますが、Facebook の規約により、ユーザー ID 以外のものをデータベースに保存することは固く禁じられています。詳細については、開発者の wikiを参照してください。毎回 API を照会する必要があります。