LINEで位置情報を送信する際はAPIなどは使わずURLスキームにて送信することができます。
https://line.me/R/nv/location/
上記のアドレスをLINEのリッチメニューやメッセージに入れ、
LINEアプリ内でアドレスをタップするだけで、位置情報が送信できる地図が立ち上がります。
受信側ではどのように受信したらよいのか、、、
ということで、GASで作成してみました。
GAS
function doPost(request) {
var SS = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SS.getSheetByName("map");
var receiveJSON = JSON.parse(request.postData.contents);
var event = receiveJSON.events[0];
var latitude = event.message.latitude;
var longitude = event.message.longitude;
var address = event.message.address;
var mapplot = "https://www.google.com/maps?q=" + latitude + "," + longitude;
sheet.appendRow([latitude, longitude,address,mapplot]);
}
mapplotはGoogleMAPのリンクを記載してくれるようにしております。
これでLINEから位置情報を送信し
webhookを受信すると
json
{
"mode": "active",
"timestamp": 1.718031718436E12,
"webhookEventId": "01J01AQ6GMER4VXTD0YM*******",
"source": {
"type": "user",
"userId": "U531f676aa92b456bde7de*******"
},
"type": "message",
"deliveryContext": {
"isRedelivery": false
},
"replyToken": "ca5c1ccbcafb4e2386bbb543*******",
"message": {
"type": "location",
"id": 512041327501246963,
"longitude": 135.496570430696,
"address": "日本、〒530-0001 大阪府大阪市北区梅田3丁目1−1 大阪ターミナルビル(サウスゲートビルディング)",
"latitude": 34.7020546166979
}
}
のように、緯度経度だけでなく、住所も送信してくれています。
地図を使ったWEBアプリなど作成の際にご利用ください!