2017-08-14 2 views
-1

Je souhaite obtenir la date et l'heure auxquelles le message a été envoyé dans le fuseau horaire local de l'utilisateur ou dans son fuseau horaire local.Comment puis-je obtenir le fuseau horaire local de mon utilisateur de bot messenger?

Comment puis-je l'obtenir dans mon bot? facebook donne l'horodatage mais je doute que cet horodatage soit calculé sur la base du fuseau horaire local de l'utilisateur.

+0

Je ne sais pas qui a voté vers le bas, mais avant voté vers le bas, je pense qu'il serait mieux de demander à la personne la raison pour laquelle il vote bas. Cela peut aider aussi celui qui a posté la question. J'ai vraiment besoin d'un guide sur la façon dont je peux obtenir un vrai fuseau horaire de l'utilisateur de mon bot. – aidonsnous

Répondre

1

The documentation donne cet exemple:

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

Le champ timestamp dans cet exemple est un Unix timestamp en termes de millisecondes. Les horodatages Unix sont toujours en termes de Coordinated Universal Time (UTC). En d'autres termes, le point de référence de l'époque est le 1er janvier 1970, 00: 00: 00.000 UTC.

Par conséquent, les fuseaux horaires sont sans importance pour le corps du message. Vous devriez simplement convertir de l'UTC au fuseau horaire désiré (probablement le fuseau horaire local de l'utilisateur) quand le message est affiché.

+0

merci, comment puis-je obtenir le fuseau horaire de l'utilisateur (un fuseau horaire fiable à chaque fois qu'il utilise le bot: de sorte que s'il était en Afrique +03: 00 et se déplace en Amérique, le fuseau horaire doit changer automatiquement)? La conversion de utc en userzone timezone sera une opération dangereuse car je ne sais pas si facebook convertit le datetime d'envoi du fuseau horaire de l'utilisateur en UTC ou leur utilise juste UTC directement avant d'envoyer cet horodatage unix – aidonsnous

+1

Un événement se produit. L'horodatage (en UTC) est capturé. Il n'y a rien d'autre. Même si Facebook a commencé avec une valeur d'heure locale et l'a convertie (ce qui serait absurde), l'API vous donne toujours des résultats basés sur l'UTC. Tu peux compter sur ça. Il n'y a rien de dangereux ici. –

+1

Maintenant, si * vous * saisissez une entrée en termes d'heure locale, alors oui - vous aurez certainement besoin de connaître le fuseau horaire dans lequel l'entrée est entrée. Ensuite, vous convertiriez cette valeur en UTC avant de la comparer. –