質問編集履歴
7
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -9,29 +9,24 @@
|
|
9
9
|
2.Google Maps APIを使えるように設定
|
10
10
|
3.距離を計算する関数の作成
|
11
11
|
|
12
|
-
これを1から順番に実現しようとしているのですが[こちら](https://developers.line.biz/ja/reference/messaging-api/#send-push-message)のドキュメントを参考に、LINE Messagin API
|
12
|
+
これを1から順番に実現しようとしているのですが[こちら](https://developers.line.biz/ja/reference/messaging-api/#send-push-message)のドキュメントを参考に、LINE Messagin APIに繋げる関数を考えたのですがうまく行きません。
|
13
13
|
```
|
14
|
+
function push_message(){
|
14
|
-
|
15
|
+
var url = "https://api.line.me/v2/bot/message/push";
|
16
|
+
var headers = {
|
15
|
-
|
17
|
+
"Content-Type" : "application/json; charset=utf-8",
|
16
|
-
|
18
|
+
"Authorization": "Bearer" + CHANNEL_ACCESS_TOKEN,
|
19
|
+
};
|
17
|
-
|
20
|
+
var postData = {
|
18
|
-
"to": "
|
21
|
+
"to" : "Uc06a60309dfeb2385f65c999b3d5764d",
|
19
|
-
"messages":[
|
22
|
+
"messages" : [
|
20
|
-
|
23
|
+
{
|
21
|
-
|
24
|
+
'type':'text',
|
22
|
-
|
25
|
+
'text':'テスト送信',
|
23
|
-
|
26
|
+
}
|
24
|
-
]
|
27
|
+
]
|
25
|
-
}
|
28
|
+
};
|
29
|
+
}
|
26
30
|
```
|
27
|
-
|
31
|
+
|
28
|
-
```
|
29
|
-
"to": "{%自分のユーザーID}",
|
30
|
-
|
32
|
+
やることは合ってますでしょうか?
|
31
|
-
{
|
32
|
-
"type":"text",
|
33
|
-
"text":"テストメッセージ"
|
34
|
-
}
|
35
|
-
]
|
36
|
-
```
|
37
|
-
のようなものをGASのコード内で書いていたのでやり方がわからなくなっております。もし上記のcurlコマンドで合ってましたらエラーの詳細を載せたいと思います。またこのLINE Messaging APIと繋ぐときにGASファイルが必要でしたらそちらの方も教えてくださると助かります。知見のある方、ぜひよろしくお願いいたします。
|
6
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,50 +1,37 @@
|
|
1
1
|
#目的
|
2
|
-
GASとLINE Messaging APIを用いて家に近づいたときにメッセージを送りたい
|
2
|
+
GASとLINE Messaging API、Google Maps APIを用いて家に近づいたときにメッセージを送りたい
|
3
3
|
|
4
4
|
#現状
|
5
|
-
[こちら](https://www.takeiho.com/messaging-api-gas)や[こちら](https://qiita.com/yamazako/items/84dab378c9899b40c780)を参考にしながら上記の目的を実現するGASファイルを
|
5
|
+
[こちらのブログ記事](https://www.takeiho.com/messaging-api-gas)や[こちらのqiita記事](https://qiita.com/yamazako/items/84dab378c9899b40c780)を参考にしながら上記の目的を実現するGASファイルを考えています。
|
6
6
|
|
7
|
+
私が考えるに今回必要な機能は大きく分けて3つあると思います。(間違えてたらぜひ教えてください)
|
8
|
+
1.LINE Messaging APIを使えるように設定
|
9
|
+
2.Google Maps APIを使えるように設定
|
10
|
+
3.距離を計算する関数の作成
|
11
|
+
|
12
|
+
これを1から順番に実現しようとしているのですが[こちら](https://developers.line.biz/ja/reference/messaging-api/#send-push-message)のドキュメントを参考に、LINE Messagin APIと繋げたいと考えているのですが、ターミナルで
|
7
13
|
```
|
8
|
-
var HOUSE_LOCATION_LATITUDE = 35.123456789;
|
9
|
-
var HOUSE_LOCATION_LONGITUDE = 140.123456789;
|
10
|
-
|
14
|
+
curl -v -X POST https://api.line.me/v2/bot/message/push \
|
11
|
-
|
12
|
-
var GOOGLE_API_KEY = '[APIKey]';
|
13
|
-
var LINE_CHANNEL_SECRET = 'hogehogefugafuga'
|
14
|
-
var LINE_CHANNEL_ACESS_TOKEN = 'hogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehoge'
|
15
|
-
var URL = 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=[MY_LOCATION]&destinations=' + HOUSE_LOCATION + '&mode=walking&language=ja&key=' + GOOGLE_API_KEY;
|
16
|
-
|
17
|
-
function doPost(request) {
|
18
|
-
var location = request.parameter.location;
|
19
|
-
var url = URL.replace(/[MY_LOCATION]/g, location);
|
20
|
-
var result = UrlFetchApp.fetch(url);
|
21
|
-
var resultStr = result.getContentText();
|
22
|
-
var metre = JSON.parse(resultStr).rows[0].elements[0].distance.value;
|
23
|
-
|
24
|
-
// 5m以内に入ったら通知
|
25
|
-
if (metre < 5) {
|
26
|
-
sendMessage(e);
|
27
|
-
}
|
28
|
-
}
|
29
|
-
|
30
|
-
|
31
|
-
function sendMessage(e){
|
32
|
-
var token = PropertiesService.getScriptProperties().setProperty('LINE_CHANNEL_ACCESS_TOKEN');
|
33
|
-
|
34
|
-
var message = {
|
35
|
-
"method" : "post",
|
36
|
-
"headers" : {
|
37
|
-
|
15
|
+
-H 'Content-Type: application/json' \
|
38
|
-
|
16
|
+
-H 'Authorization: Bearer {channel access token}' \
|
39
|
-
},
|
40
|
-
|
17
|
+
-d '{
|
41
|
-
|
18
|
+
"to": "{%自分のユーザーID}",
|
42
|
-
|
19
|
+
"messages":[
|
43
20
|
{
|
44
|
-
|
21
|
+
"type":"text",
|
45
|
-
|
22
|
+
"text":"テストメッセージ"
|
46
|
-
}
|
23
|
+
}
|
47
|
-
|
24
|
+
]
|
25
|
+
}'
|
26
|
+
```
|
27
|
+
と打ったのですがエラーが出てしまいました。そこで、まずやることは合ってますでしょうか?上記に添付させていただいたqiita記事ではcurlを使わず
|
28
|
+
```
|
29
|
+
"to": "{%自分のユーザーID}",
|
30
|
+
"messages":[
|
31
|
+
{
|
32
|
+
"type":"text",
|
33
|
+
"text":"テストメッセージ"
|
48
|
-
|
34
|
+
}
|
49
|
-
|
35
|
+
]
|
50
|
-
```
|
36
|
+
```
|
37
|
+
のようなものをGASのコード内で書いていたのでやり方がわからなくなっております。もし上記のcurlコマンドで合ってましたらエラーの詳細を載せたいと思います。またこのLINE Messaging APIと繋ぐときにGASファイルが必要でしたらそちらの方も教えてくださると助かります。知見のある方、ぜひよろしくお願いいたします。
|
5
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -27,6 +27,7 @@
|
|
27
27
|
}
|
28
28
|
}
|
29
29
|
|
30
|
+
|
30
31
|
function sendMessage(e){
|
31
32
|
var token = PropertiesService.getScriptProperties().setProperty('LINE_CHANNEL_ACCESS_TOKEN');
|
32
33
|
|
4
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -12,9 +12,21 @@
|
|
12
12
|
var GOOGLE_API_KEY = '[APIKey]';
|
13
13
|
var LINE_CHANNEL_SECRET = 'hogehogefugafuga'
|
14
14
|
var LINE_CHANNEL_ACESS_TOKEN = 'hogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehoge'
|
15
|
-
var URL = 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=[MY_LOCATION]&destinations=' + HOUSE_LOCATION + '&mode=walking&language=ja&key=' + GOOGLE_API_KEY;
|
15
|
+
var URL = 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=[MY_LOCATION]&destinations=' + HOUSE_LOCATION + '&mode=walking&language=ja&key=' + GOOGLE_API_KEY;
|
16
16
|
|
17
|
+
function doPost(request) {
|
18
|
+
var location = request.parameter.location;
|
19
|
+
var url = URL.replace(/[MY_LOCATION]/g, location);
|
20
|
+
var result = UrlFetchApp.fetch(url);
|
21
|
+
var resultStr = result.getContentText();
|
22
|
+
var metre = JSON.parse(resultStr).rows[0].elements[0].distance.value;
|
17
23
|
|
24
|
+
// 5m以内に入ったら通知
|
25
|
+
if (metre < 5) {
|
26
|
+
sendMessage(e);
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
18
30
|
function sendMessage(e){
|
19
31
|
var token = PropertiesService.getScriptProperties().setProperty('LINE_CHANNEL_ACCESS_TOKEN');
|
20
32
|
|
3
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -15,23 +15,23 @@
|
|
15
15
|
var URL = 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=[MY_LOCATION]&destinations=' + HOUSE_LOCATION + '&mode=walking&language=ja&key=' + GOOGLE_API_KEY;// language,modeは別に無くても良い
|
16
16
|
|
17
17
|
|
18
|
-
function doPost(request) {
|
19
|
-
var location = request.parameter.location;
|
20
|
-
var url = URL.replace(/[MY_LOCATION]/g, location);
|
21
|
-
var result = UrlFetchApp.fetch(url);
|
22
|
-
var resultStr = result.getContentText();
|
23
|
-
var metre = JSON.parse(resultStr).rows[0].elements[0].distance.value;
|
24
|
-
|
25
|
-
// 5m以内に入ったら通知
|
26
|
-
if (metre < 5) {
|
27
|
-
sendMessage('test1', '5m以内に入りました');
|
28
|
-
}
|
29
|
-
}
|
30
|
-
|
31
|
-
function sendMessage(){
|
18
|
+
function sendMessage(e){
|
32
19
|
var token = PropertiesService.getScriptProperties().setProperty('LINE_CHANNEL_ACCESS_TOKEN');
|
20
|
+
|
21
|
+
var message = {
|
22
|
+
"method" : "post",
|
33
|
-
|
23
|
+
"headers" : {
|
34
|
-
|
24
|
+
"Content-Type" : "application/json",
|
35
|
-
|
25
|
+
"Authorization" : "Bearer " + LINE_CHANNEL_ACCESS_TOKEN,
|
26
|
+
},
|
27
|
+
"payload" : JSON.stringify(message),
|
28
|
+
"to" : "hogehoge",
|
29
|
+
"messages" : [
|
30
|
+
{
|
31
|
+
"type" : "text",
|
32
|
+
"text" : "鍵をかけ忘れてますよ"
|
33
|
+
}
|
34
|
+
]
|
35
|
+
}
|
36
36
|
}
|
37
37
|
```
|
2
っd
title
CHANGED
File without changes
|
body
CHANGED
@@ -29,7 +29,7 @@
|
|
29
29
|
}
|
30
30
|
|
31
31
|
function sendMessage(){
|
32
|
-
var token = PropertiesService.getScriptProperties().
|
32
|
+
var token = PropertiesService.getScriptProperties().setProperty('LINE_CHANNEL_ACCESS_TOKEN');
|
33
33
|
//何か必要そう
|
34
34
|
|
35
35
|
|
1
s
title
CHANGED
File without changes
|
body
CHANGED
File without changes
|