teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

7

追記

2021/08/25 16:23

投稿

cunwe
cunwe

スコア65

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
- curl -v -X POST https://api.line.me/v2/bot/message/push \
15
+ var url = "https://api.line.me/v2/bot/message/push";
16
+ var headers = {
15
- -H 'Content-Type: application/json' \
17
+ "Content-Type" : "application/json; charset=utf-8",
16
- -H 'Authorization: Bearer {channel access token}' \
18
+ "Authorization": "Bearer" + CHANNEL_ACCESS_TOKEN,
19
+ };
17
- -d '{
20
+ var postData = {
18
- "to": "{%自分のユーザーID}",
21
+ "to" : "Uc06a60309dfeb2385f65c999b3d5764d",
19
- "messages":[
22
+ "messages" : [
20
- {
23
+ {
21
- "type":"text",
24
+ 'type':'text',
22
- "text":"テストメッセージ"
25
+ 'text':'テスト送信',
23
- }
26
+ }
24
- ]
27
+ ]
25
- }'
28
+ };
29
+ }
26
30
  ```
27
- と打ったのですがエラーが出てしまいました。そこで、まずやることは合ってますでしょうか?上記に添付させていただいたqiita記事ではcurlを使わず
31
+
28
- ```
29
- "to": "{%自分のユーザーID}",
30
- "messages":[
32
+ やることは合ってますでしょうか?
31
- {
32
- "type":"text",
33
- "text":"テストメッセージ"
34
- }
35
- ]
36
- ```
37
- のようなものをGASのコード内で書いていたのでやり方がわからなくなっております。もし上記のcurlコマンドで合ってましたらエラーの詳細を載せたいと思います。またこのLINE Messaging APIと繋ぐときにGASファイルが必要でしたらそちらの方も教えてくださると助かります。知見のある方、ぜひよろしくお願いいたします。

6

追記

2021/08/25 16:23

投稿

cunwe
cunwe

スコア65

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
- var HOUSE_LOCATION = HOUSE_LOCATION_LATITUDE + ',' + HOUSE_LOCATION_LONGITUDE;
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
- "Content-Type" : "application/json",
15
+ -H 'Content-Type: application/json' \
38
- "Authorization" : "Bearer " + LINE_CHANNEL_ACCESS_TOKEN,
16
+ -H 'Authorization: Bearer {channel access token}' \
39
- },
40
- "payload" : JSON.stringify(message),
17
+ -d '{
41
- "to" : "hogehoge",
18
+ "to": "{%自分のユーザーID}",
42
- "messages" : [
19
+ "messages":[
43
20
  {
44
- "type" : "text",
21
+ "type":"text",
45
- "text" : "鍵をかけ忘れてますよ"
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

追記

2021/08/24 11:56

投稿

cunwe
cunwe

スコア65

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

追記

2021/08/22 04:18

投稿

cunwe
cunwe

スコア65

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;// language,modeは別に無くても良い
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

追記

2021/08/21 12:49

投稿

cunwe
cunwe

スコア65

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

2021/08/21 12:48

投稿

cunwe
cunwe

スコア65

title CHANGED
File without changes
body CHANGED
@@ -29,7 +29,7 @@
29
29
  }
30
30
 
31
31
  function sendMessage(){
32
- var token = PropertiesService.getScriptProperties().getProperty('LINE_CHANNEL_ACCESS_TOKEN');
32
+ var token = PropertiesService.getScriptProperties().setProperty('LINE_CHANNEL_ACCESS_TOKEN');
33
33
  //何か必要そう
34
34
 
35
35
 

1

s

2021/08/21 12:29

投稿

cunwe
cunwe

スコア65

title CHANGED
File without changes
body CHANGED
File without changes