本篇介紹Messenger API取得用戶GPS位置的功能。取得GPS位置可以讓我們提供在地化的服務,例如高鐵訂票就不用使用者輸入起始站。
1. 傳送下列JSON指令給使用者,會產生如圖的快送回覆按鈕。下列指令是用windows版的CURL傳送JSON,請改成你的接收者ID,換成你的權杖。接收者ID可以從之前的介紹的webhook.txt取得。
D:\curl\bin\curl -H "Content-Type: application/json" -d "{ \"recipient\":{ \"id\":\"\" }, \"message\":{ \"text\": \"Here is a quick reply!\", \"quick_replies\":[ { \"content_type\":\"location\" } ] }}" https://graph.facebook.com/v2.6/me/messages?access_token=
2. 點下"傳送目前位置"的按鈕後,會出現MAP。
3. 前面確定位置後,會回傳座標給webhook。
webhook.php
$raw = file_get_contents('php://input'); rewrite('webhooks.txt', "\n\n\n".$raw ."\n\n"); $data = json_decode($raw, true); print_r($data); if( $data['object'] == 'page'){ foreach($data['entry'] as $entry) { foreach($entry['messaging'] as $messaging) { rewrite('webhooks.txt', '[sender][id] ='.$messaging['sender']['id']."\n"); rewrite('webhooks.txt', '[message][text] ='.$messaging['message']['text']."\n"); if(!empty($messaging['message']['text'])){ sendText($messaging['sender']['id'], 'Text received, echo: '.$messaging['message']['text']); } else if(!empty($messaging['message']['attachments'][0]['payload']['coordinates'])){ $replyText ='Coordinates: ' .$messaging['message']['attachments'][0]['payload']['coordinates']['lat'] .',' .$messaging['message']['attachments'][0]['payload']['coordinates']['long']; sendText($messaging['sender']['id'], $replyText); } } } }
沒有留言:
張貼留言