このようなFacebook PHP SDKでイベントを作成しています
$fb_event['name'] = $_POST['post_title'];
$fb_event['description'] = $_POST['content'];
$fb_event['start_time'] = date( "c", Ai1ec_Facebook_Event::get_facebook_start_time($event->start));
$fb_event['location'] = "Dove ti pare basta che si aggiorni al mio timezone";
$fb_event['street'] = "Via andrea del sarto 9";
$fb_event['city'] = "Milan";
$facebook = $this->facebook_instance_factory();
try {
$result = $facebook->api( "/me/events", "POST", $fb_event );
} catch (FacebookApiException $e) {
fb($e);
}
これはAi1ec_Facebook_Event::get_facebook_start_time
単純にタイムスタンプを取得し、それを PST であるかのように UTC に変換します。これは、EVENT が UTC 午後 8 時に開始することを決定した場合、その関数は翌日の午前 3 時を返すことを意味します。
すべてが正しく機能し、イベントが作成されます。問題は、TIMEZONE UTC + 2 にあるユーザーでイベントを見ると、まだ午後 10 時ではなく午後 8 時になっていることです。
作成したイベントですhttps://www.facebook.com/events/245655182207213/
このイベントを作成するときに Facebook がタイムゾーンを無視しているようです。なぜですか?標準のタイムゾーンを使用するには、Facebook に何を伝える必要がありますか?
編集 - この記事 developers.facebook.com/roadmap/#timezone-less-events を読んだ後、タイムゾーンフィールドがあることに気付きましたが、それを機能させることができません。
$fb_event['timezone'] = "Europe/Sofia";
Facebook は単にそれを無視し、イベントをクエリすると、タイムゾーンの NULL が返されます。