こんにちは、提供された URL に基づいて Facebook からイベント情報を取得するために、次のコードを使用します。
コードは次のとおりです。
function importEvent($url)
{
$facebook = new Facebook(array(
'appId' => 'someAppId',
'secret' => 'someSecret',
'cookie' => true, // enable optional cookie support
));
if(checkLogin()==true)
{
//get rid of hash if exists
$hash = explode('#',$url);
if(!empty($hash[1]))
$array = parse_url($hash[1]);
else
$array = parse_url($hash[0]);
parse_str($array['query'],$output);
$eid = $output['eid'];
if(empty($eid))//new url think http://www.facebook.com/events/2323423423423/
{
$url = str_replace('http://www.facebook.com/events/','',$url);
$url = str_replace('https://www.facebook.com/events/','',$url);
$hash = explode('/?',$url);
if(!empty($hash[1]))
$url = $hash[0];
$eid = str_replace('?','',$url);
$eid = str_replace('/','',$url);
//print_r($eid);
}
//Calling users.getinfo legacy api call example
try{
$param = array(
'method' => 'events.get',
'eids' => $eid,
'access_token' => $_SESSION['access_token']
);
$events = $facebook->api($param);
}
catch(Exception $o){
error_log($o);
echo $o;
}
print_r($events);
return $events;
}
}
私が得ている出力はこれです:
Array
(
[0] => Array
(
[eid] => 410474065693887
[name] => Sunday Night Fever Vol.4 Disco Special @Legacy Rock Area
[pic_small] => http://profile.ak.fbcdn.net/hprofile-ak-snc6/276862_410474065693887_714884848_t.jpg
[pic_big] => http://profile.ak.fbcdn.net/hprofile-ak-snc6/276862_410474065693887_714884848_n.jpg
[pic] => http://profile.ak.fbcdn.net/hprofile-ak-snc6/276862_410474065693887_714884848_s.jpg
[pic_square] => http://profile.ak.fbcdn.net/hprofile-ak-snc6/276862_410474065693887_714884848_q.jpg
[has_profile_pic] => 1
[host] => Legacy Rock Area
[version] => 2
[description] => Αφου μας το ζητησατε "παρτε" το..!!!
Μετα το τελευταιο απιστευτο killer Disco Party εχουμε την ευκαιρια να κανουμε προθερμανση για τον Super Αποκριατικο Φεβρουαριο που θα ακολουθησει στο Legacy Rock Area μεμια βραδυα γεματη Disco,Dance,Pop και οπου μας βγαλει...!!
Κυριακη 20 Ιανουαριου λοιπον..Sunday Night Fever Disco Special!!!
That night the DJ saves our lives...!!!
[start_time] => 2013-01-20
[end_time] =>
[timezone] =>
[is_date_only] => 1
[creator] => 1732432279
[update_time] => 1357737066
[location] => Legacy Rock Area
[hide_guest_list] =>
[can_invite_friends] =>
[privacy] => OPEN
[venue] => Array
(
[id] => 244479685665743
)
[all_members_count] => 7175
[attending_count] => 74
[unsure_count] => 144
[declined_count] => 509
[not_replied_count] => 6957
)
)
ただし、API ドキュメントでは、会場には次のものが含まれていると記載されています。
このイベントの場所 id、street、city、state、zip、country、latitude、および longitude フィールドの 1 つ以上を含む汎用 access_token、user_events、または friends_events オブジェクト。
しかし、私が得ているのは会場IDだけです。
会場の場所の緯度と経度を取得する方法に関する特定の情報を見つけることができませんでした。間違っていなければ、このコードは問題ないと思います。
会場情報のためだけに別のクエリを実行する必要がありますか? その場合は、参照またはコード例を提供していただけますか? または、このコードが lat + lng も返す方法があるので、1 つのイベントに対して 2 つのクエリを実行する必要はありませんか?