2017-08-14 8 views
-1

私は、メッセージがユーザーのローカルタイムゾーンまたはローカルタイムゾーンで送信された日時を取得したいと考えています。私のメッセンジャーのボットユーザーはどのようにしてローカルタイムゾーンを取得できますか?

どのように私のボットからそれを得ることができますか? facebookはタイムスタンプを返しますが、そのタイムスタンプがユーザーのローカルタイムゾーンに基づいて計算されるかどうかは疑問です。

+0

私は誰がこれを投票したのかわからないが、私はそれが彼が投票を下す理由を人に尋ねる方が良いstackoverflowだろうと思う。それは質問を投稿した人にも役立ちます。私は実際に私のボットユーザーの本当のタイムゾーンを得る方法についてのガイダンスが必要です。 – aidonsnous

答えて

1

The documentationは、この例を示します。この例では

{ 
    "sender":{ 
    "id":"USER_ID" 
    }, 
    "recipient":{ 
    "id":"PAGE_ID" 
    }, 
    "timestamp":1458692752478, 
    "message":{ 
    "mid":"mid.1457764197618:41d102a3e1ae206a38", 
    "text":"hello, world!", 
    "quick_reply": { 
     "payload": "DEVELOPER_DEFINED_PAYLOAD" 
    } 
    } 
}  

timestampフィールドは、ミリ秒単位の面でUnix timestampです。 Unixのタイムスタンプは、で、常にであり、Coordinated Universal Time (UTC)で表示されます。言い換えると、エポック基準点は、1970年1月1日00:00:00.000 UTCです。

したがって、タイムゾーンはメッセージ本文とは関係ありません。メッセージが表示されたら、UTCから希望のタイムゾーン(おそらくユーザーのローカルタイムゾーン)に変換するだけです。

+0

ありがとう、私はどのようにユーザーのタイムゾーンを取得することができます(信頼できるタイムゾーンは、彼/彼女はボットを使用します:アフリカにいた場合は+03:00、アメリカに移動してタイムゾーンを自動的に変更する必要があります) FacebookのユーザータイムゾーンをUTCに変換するか、またはそのユニックスタイムスタンプを送信する直前にUTCを直接使用するかわからないので、utcからユーザーのタイムゾーンに変換するのは危険です。 – aidonsnous

+1

イベントが発生します。タイムスタンプ(UTC)が取得されます。それには何もありません。たとえFacebookが何らかのローカルタイム値で開始し、それを変換したとしても(それは不合理になります)、APIは依然としてUTCベースの結果を提供しています。あなたはそれを期待することができます。ここには何も危険はない。 –

+1

*あなたが現地時間で入力をキャプチャしている場合、はい - 確かに入力が入っているタイムゾーンを知る必要があります。それから比較する前にそれをUTCに変換します。 –

関連する問題