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 资源管理器中比较您的两个测试事件,您会看到事件 ID 239298922846828没有填充其纬度和经度,而245655182207213有。我假设 245655182207213 是您编辑的事件。

查看您的代码,您似乎正在按照文档中的说明进行所有操作。但是,我发现所描述的内容并不总是有效。

我所看到的是,在已知地点发生的从 Facebook 内部填充的事件不再允许您指定地址。相反,他们保存的只是 Facebook 中的场地 ID,然后您可以深入了解该 ID 以获取地址等。

看看我的一个事件。对于此活动,无法在 Facebook 内编辑此位置的详细信息,也不会通过 API 调用返回活动场地详细信息。我正在使用 API 将事件详细信息拉到外部网站。这种变化让我沮丧了好几天。

我在四月下旬开始看到这种行为。我还没有找到任何宣布此更改的官方文档。

当出现一些文档时,我预计新的活动场地工作流程将类似于:

  • 查询您的活动将发生的区域,以查看场地是否已经存在。
    • 如果是,请保存其 ID。
    • 如果没有,请为您的场地创建一个新的社区页面并保存其 ID。
  • 使用此 ID 填充活动场地。
于 2012-05-30T01:21:57.077 回答
0

使用相同参数创建时的两种不同格式。

通过 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 回答
0

最后,这是一个已知的 facebook 错误

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

于 2012-05-30T12:23:46.227 回答