3

グラフAPIを使用してイベントを作成する場合、会場を指定する必要があり、地図も表示したいと思います。

そうです

$fb_event['name'] = "THis is to test latitude";
$fb_event['description'] = "And longitude!!!!";
$fb_event['start_time'] = date( "c", Ai1ec_Facebook_Event::get_facebook_start_time($event->start));
$fb_event['location'] = "Where you want";
$fb_event['street'] = "Via andrea del sarto 9";
$fb_event['city'] = "Milan";
$fb_event['latitude'] = 45.444975793404;
$fb_event['longitude'] = 9.2119209654715;

$facebook = $this->facebook_instance_factory();
try {
    $result = $facebook->api( "/me/events", "POST", $fb_event );
} catch (FacebookApiException $e) {
    fb($e);
}

これにより、正しい通りと都市が表示されますが、地図は表示されないこのイベントが生成されます。イベントを編集して保存すると、通りと都市を正しく使用して「魔法のように」地図が表示されます。

いずれの場合も、緯度と経度は無視されます。

私は何が間違っているのですか?

4

3 に答える 3

2

Graph APIエクスプローラーで2つのテストイベントを比較すると、イベントID 239298922846828には緯度と経度が入力されていませんが、245655182207213には入力されていることがわかります。245655182207213はあなたが編集したイベントだと思います。

コードを見ると、ドキュメントで説明されているようにすべてを実行しているように見えます。ただし、説明されていることが常に機能するとは限らないことがわかりました。

私が見ているのは、既知の場所で発生するFacebook内から入力されたイベントでは、アドレスを指定できなくなっているということです。代わりに、保存するのはFacebook内の会場IDだけで、これをドリルダウンしてアドレスなどを取得できます。

私のイベントの1つを見てください。このイベントの場合、Facebook内からこの場所の詳細を編集する方法はありません。また、イベント会場の詳細がAPI呼び出しで返されることもありません。APIを使用して、イベントの詳細を外部のWebサイトにプルしています。この変化は私に何日もの欲求不満を引き起こしました。

私は4月下旬にこの行動を見始めました。この変更を発表する公式ドキュメントは見つかりませんでした。

いくつかのドキュメントが表示されたら、新しいイベント会場のワークフローは次のようになります。

  • イベントが行われるエリアをクエリして、会場がすでに存在するかどうかを確認します。
    • はいの場合、そのIDを保存します。
    • そうでない場合は、会場の新しいコミュニティページを作成し、そのIDを保存します。
  • このIDを使用して、イベント会場にデータを入力します。
于 2012-05-30T01:21:57.077 に答える
0

結局、これは既知のFacebookのバグです

https://developers.facebook.com/bugs/173095916131752

于 2012-05-30T12:23:46.227 に答える
0

同じパラメータを使用して作成する場合の2つの異なる形式。

gqlを介してイベントを作成する場合

{
  "id": "xxxxxxxxxxxxxx", 
  "owner": {
    "name": "xxxxxxxxxx", 
    "id": "xxxxxxxxx"
  }, 
  "name": "W1112", 
  "start_time": "2013-10-22", 
  "is_date_only": true, 
  "location": "Tulsa, OK, United States", 
  "venue": {
    "latitude": 36.131388888889, 
    "longitude": -95.937222222222, 
    "street": "", 
    "zip": "", 
    "id": "109436565740998"
  }, 
  "privacy": "SECRET", 
  "updated_time": "2013-09-19T12:23:26+0000"
}





When create event through fb
{
  "id": "xxxxxxxxxxxxxx", 
  "owner": {
    "name": "xxxxxx", 
    "id": "xxxxxxxx"
  }, 
  "name": "1234", 
  "start_time": "2013-10-09T21:26:00+1100", 
  "end_time": "2013-10-25T00:26:00+1100", 
  "timezone": "Australia/Sydney", 
  "is_date_only": false, 
  "location": "Maroubra Junction", 
  "venue": {
    "latitude": -33.940804216453, 
    "longitude": 151.23876752992, 
    "city": "Maroubra", 
    "state": "NSW", 
    "country": "Australia", 
    "id": "153993547968514", 
    "street": "832 anzac Parade ", 
    "zip": "2035"
  }, 
  "privacy": "SECRET", 
  "updated_time": "2013-09-19T10:50:14+0000"
}
于 2013-09-19T12:31:35.673 に答える