Facebook Messengerには、ユーザーが地理座標を送信できるアイコンがあります。
これはFacebook Messengerプラットフォームでまだ利用可能ですか?つまり、ユーザーが私に場所を送信した場合、私のChatbotはそれにアクセスできますか?もしそうなら、私は私のウェブフックの応答でそれを見ることができないので、それはどのように行われますか。
メッセージの添付ファイルとして場所を取得します。以下のサンプルを参照してください。
{ mid: 'mid.1463464074086:96b149e1a047e47842',
seq: 2076,
attachments:
[ { title: 'Anupam\'s Location',
url: 'https://www.facebook.com/l.php?u=https%3A%2F%2Fwww.bing.com%2Fmaps%2Fdefault.aspx%3Fv%3D2%26pc%3DFACEBK%26mid%3D8100%26where1%3D19.120002%252C%2B72.863715%26FORM%3DFBKPL1%26mkt%3Den-US&h=AAQH523sr&s=1&enc=AZNmEBjv3zHHm0_dYnEIC6j7EDsJNt8PZRZZyaXbIZ6VzjPsQUOOaMIPGtXFH17CevUiNK0_K594CgDQHAMQSru7uS_jjbkxojBWNwBnncqzaw',
type: 'location',
payload: [Object] } ] }
ペイロードから、次を使用して緯度と経度にアクセスできます。
lat = event.message.attachments[0].payload.coordinates.lat
lng = event.message.attachments[0].payload.coordinates.long
はい、場所はメッセージの添付ファイルとして送信されます。 facebook messengerプラットフォームのドキュメントに記載されているサンプルコードを参照している場合、修正は次のように行うことができます。(完全なコードはこちらを参照してください https://developers.facebook.com/docs/messenger -platform/quickstart )
elseセクションで
else if (messageAttachments) {
console.log(messageAttachments[0].payload.coordinates.lat); //gives you lat
console.log(messageAttachments[0].payload.coordinates.long); // gives you long
}
今のところ、ユーザーの位置の一部を取得することに関してバグがあります。
ユーザーがfacebook-messenger-botで自分の位置を共有するとき;
以下のようにユーザーの位置を取得できます
{ mid: 'mid.1463464074086:96b149e1a047e47842',
seq: 2076,
attachments:
[ { title: 'Fatih\'s Location',
url: 'https://www.facebook.com/l.php?u=https%3A%2F%2Fwww.bing.com%2Fmaps%..',
type: 'location',
payload: [Object]
} ] }
しかし、以下の応答のように、他のユーザーの位置を取得することはできません;
{
{ mid: 'mid.$cAAD53Ka90kBmfY23q1gTEdy6rrmW', seq: 19104}
}
Facebookチームはまだこのバグに取り組んでいます。これは、参照したい場合のリンクです。 https://developers.facebook.com/bugs/160926314660178/