質問編集履歴

7

追記

2021/08/25 16:23

投稿

cunwe
cunwe

スコア65

test CHANGED
File without changes
test CHANGED
@@ -20,54 +20,44 @@
20
20
 
21
21
 
22
22
 
23
- これを1から順番に実現しようとしているのですが[こちら](https://developers.line.biz/ja/reference/messaging-api/#send-push-message)のドキュメントを参考に、LINE Messagin API繋げたいと考えているのですが、ターミナルで
23
+ これを1から順番に実現しようとしているのですが[こちら](https://developers.line.biz/ja/reference/messaging-api/#send-push-message)のドキュメントを参考に、LINE Messagin API繋げる関数を考えのですがうまく行きません。
24
24
 
25
25
  ```
26
26
 
27
- curl -v -X POST https://api.line.me/v2/bot/message/push \
27
+ function push_message(){
28
28
 
29
- -H 'Content-Type: application/json' \
29
+ var url = "https://api.line.me/v2/bot/message/push";
30
30
 
31
- -H 'Authorization: Bearer {channel access token}' \
31
+ var headers = {
32
32
 
33
- -d '{
33
+ "Content-Type" : "application/json; charset=utf-8",
34
34
 
35
- "to": "{%自分のユーザーID}",
35
+ "Authorization": "Bearer" + CHANNEL_ACCESS_TOKEN,
36
36
 
37
- "messages":[
37
+ };
38
38
 
39
- {
39
+ var postData = {
40
40
 
41
- "type":"text",
41
+ "to" : "Uc06a60309dfeb2385f65c999b3d5764d",
42
42
 
43
- "text":"テストメッセージ"
43
+ "messages" : [
44
44
 
45
- }
45
+ {
46
46
 
47
- ]
47
+ 'type':'text',
48
48
 
49
+ 'text':'テスト送信',
50
+
51
+ }
52
+
53
+ ]
54
+
49
- }'
55
+ };
56
+
57
+ }
50
58
 
51
59
  ```
52
60
 
53
- と打ったのですがエラーが出てしまいました。そこで、まずやることは合ってますでしょうか?上記に添付させていただいたqiita記事ではcurlを使わず
54
61
 
55
- ```
56
62
 
57
- "to": "{%自分のユーザーID}",
58
-
59
- "messages":[
63
+ やることは合ってますでしょうか?
60
-
61
- {
62
-
63
- "type":"text",
64
-
65
- "text":"テストメッセージ"
66
-
67
- }
68
-
69
- ]
70
-
71
- ```
72
-
73
- のようなものをGASのコード内で書いていたのでやり方がわからなくなっております。もし上記のcurlコマンドで合ってましたらエラーの詳細を載せたいと思います。またこのLINE Messaging APIと繋ぐときにGASファイルが必要でしたらそちらの方も教えてくださると助かります。知見のある方、ぜひよろしくお願いいたします。

6

追記

2021/08/25 16:23

投稿

cunwe
cunwe

スコア65

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

5

追記

2021/08/24 11:56

投稿

cunwe
cunwe

スコア65

test CHANGED
File without changes
test CHANGED
@@ -56,6 +56,8 @@
56
56
 
57
57
 
58
58
 
59
+
60
+
59
61
  function sendMessage(e){
60
62
 
61
63
  var token = PropertiesService.getScriptProperties().setProperty('LINE_CHANNEL_ACCESS_TOKEN');

4

追記

2021/08/22 04:18

投稿

cunwe
cunwe

スコア65

test CHANGED
File without changes
test CHANGED
@@ -26,9 +26,33 @@
26
26
 
27
27
  var LINE_CHANNEL_ACESS_TOKEN = 'hogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehoge'
28
28
 
29
- 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は別に無くても良い
29
+ var URL = 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=[MY_LOCATION]&destinations=' + HOUSE_LOCATION + '&mode=walking&language=ja&key=' + GOOGLE_API_KEY;
30
30
 
31
31
 
32
+
33
+ function doPost(request) {
34
+
35
+ var location = request.parameter.location;
36
+
37
+ var url = URL.replace(/[MY_LOCATION]/g, location);
38
+
39
+ var result = UrlFetchApp.fetch(url);
40
+
41
+ var resultStr = result.getContentText();
42
+
43
+ var metre = JSON.parse(resultStr).rows[0].elements[0].distance.value;
44
+
45
+
46
+
47
+ // 5m以内に入ったら通知
48
+
49
+ if (metre < 5) {
50
+
51
+ sendMessage(e);
52
+
53
+ }
54
+
55
+ }
32
56
 
33
57
 
34
58
 

3

追記

2021/08/21 12:49

投稿

cunwe
cunwe

スコア65

test CHANGED
File without changes
test CHANGED
@@ -32,41 +32,41 @@
32
32
 
33
33
 
34
34
 
35
- function doPost(request) {
36
-
37
- var location = request.parameter.location;
38
-
39
- var url = URL.replace(/[MY_LOCATION]/g, location);
40
-
41
- var result = UrlFetchApp.fetch(url);
42
-
43
- var resultStr = result.getContentText();
44
-
45
- var metre = JSON.parse(resultStr).rows[0].elements[0].distance.value;
46
-
47
-
48
-
49
- // 5m以内に入ったら通知
50
-
51
- if (metre < 5) {
52
-
53
- sendMessage('test1', '5m以内に入りました');
54
-
55
- }
56
-
57
- }
58
-
59
-
60
-
61
- function sendMessage(){
35
+ function sendMessage(e){
62
36
 
63
37
  var token = PropertiesService.getScriptProperties().setProperty('LINE_CHANNEL_ACCESS_TOKEN');
64
38
 
65
- //何か必要そう
39
+
66
40
 
41
+ var message = {
67
42
 
43
+ "method" : "post",
68
44
 
45
+ "headers" : {
69
46
 
47
+ "Content-Type" : "application/json",
48
+
49
+ "Authorization" : "Bearer " + LINE_CHANNEL_ACCESS_TOKEN,
50
+
51
+ },
52
+
53
+ "payload" : JSON.stringify(message),
54
+
55
+ "to" : "hogehoge",
56
+
57
+ "messages" : [
58
+
59
+ {
60
+
61
+ "type" : "text",
62
+
63
+ "text" : "鍵をかけ忘れてますよ"
64
+
65
+ }
66
+
67
+ ]
68
+
69
+ }
70
70
 
71
71
  }
72
72
 

2

っd

2021/08/21 12:48

投稿

cunwe
cunwe

スコア65

test CHANGED
File without changes
test CHANGED
@@ -60,7 +60,7 @@
60
60
 
61
61
  function sendMessage(){
62
62
 
63
- var token = PropertiesService.getScriptProperties().getProperty('LINE_CHANNEL_ACCESS_TOKEN');
63
+ var token = PropertiesService.getScriptProperties().setProperty('LINE_CHANNEL_ACCESS_TOKEN');
64
64
 
65
65
  //何か必要そう
66
66
 

1

s

2021/08/21 12:29

投稿

cunwe
cunwe

スコア65

test CHANGED
File without changes
test CHANGED
File without changes