回答編集履歴

5

 

2022/12/23 15:52

投稿

退会済みユーザー
test CHANGED
@@ -59,13 +59,13 @@
59
59
 
60
60
  function doPost(e) {
61
61
  try {
62
- doPostPloxy(e);
62
+ doPostProxy(e);
63
63
  } catch (err) {
64
64
  debug(JSON.stringify(err.stack || err.message, undefined, 1));
65
65
  }
66
66
  }
67
67
  //dopostの関数定義
68
- function doPostPloxy(e) {
68
+ function doPostProxy(e) {
69
69
  var json = e.postData.contents
70
70
  //返信するためのJSONの取得
71
71
  var events = JSON.parse(json).events;

4

 

2022/12/23 15:27

投稿

退会済みユーザー
test CHANGED
@@ -48,7 +48,7 @@
48
48
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-12-24/c0928edb-cacd-4fea-add9-802ec614ed1a.png)
49
49
 
50
50
  ② 次にコードを下記のように書き換えて、保存、デプロイし、LINEのwebhook URLを変更した上、LINEにメッセージを送ってください。
51
- もしGAS内部でエラーが発生していれば、さきほど作った log シートにエラーの内容が追記されるはずですので、エラー内容を教えてください。
51
+ もし LINE 送信時に GAS 内部でエラーが発生していれば、さきほど作った log シートにエラーの内容が追記されるはずですので、エラー内容を教えてください。
52
52
 
53
53
  ```js
54
54
  //固定値

3

追記

2022/12/23 15:26

投稿

退会済みユーザー
test CHANGED
@@ -33,4 +33,85 @@
33
33
  };
34
34
  ```
35
35
 
36
+ ---
36
37
 
38
+ # 追記
39
+ (コメントより)
40
+ > 早速、修正しデプロイし実行してみたのですが、LINE botからの応答がありませんでした。
41
+
42
+ 何らかのエラーが発生している可能性があります。
43
+ エラー内容を把握するため、下記の手順を行ってください。
44
+
45
+ ① まず、エラー記録用のログシートを追加します。
46
+ 具体的には、現在使っているスプレッドシートに「log」という名前のシート(タブ)を追加してください。
47
+ 追加後は下記のようなイメージです。
48
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-12-24/c0928edb-cacd-4fea-add9-802ec614ed1a.png)
49
+
50
+ ② 次にコードを下記のように書き換えて、保存、デプロイし、LINEのwebhook URLを変更した上、LINEにメッセージを送ってください。
51
+ もしGAS内部でエラーが発生していれば、さきほど作った log シートにエラーの内容が追記されるはずですので、エラー内容を教えてください。
52
+
53
+ ```js
54
+ //固定値
55
+ const CHANNEL_ACCESS_TOKEN ='H****Du0zICfpe+o0dQ1imBlCBhEbE4Knj3eZnHQKkaO5fjIJEIkIiXeIxrXGv2c2o/rONZtsMf7QtsYw2YQ20H+G+pvX/nqdjma3dIhDuIeUWoAW8trfNjtTCiZv1tZCEpQMCq8oMgdB04t89/1O/w1cDnyilFU=';//チャンネルアクセストークン
56
+ const spreadsSheet = SpreadsheetApp.openById("1***5bS-MdoajiGF3YXrnTmheFoss6zqCXdgh2uLp4");
57
+ const url = "https://api.line.me/v2/bot/message/reply";
58
+ const push_url = "https://api.line.me/v2/bot/message/push";
59
+
60
+ function doPost(e) {
61
+ try {
62
+ doPostPloxy(e);
63
+ } catch (err) {
64
+ debug(JSON.stringify(err.stack || err.message, undefined, 1));
65
+ }
66
+ }
67
+ //dopostの関数定義
68
+ function doPostPloxy(e) {
69
+ var json = e.postData.contents
70
+ //返信するためのJSONの取得
71
+ var events = JSON.parse(json).events;
72
+ events.forEach(function (event) {
73
+ if (event.type == "follow") {//①
74
+ shokaibun_1(event);//①→2
75
+ }//相手が友達追加したら場合のみ起きる。
76
+ else if (event.type == "message") {
77
+ var reply_message = event.message.text;
78
+ shokaibun_1(event);
79
+ }
80
+ if (typeof replyToken === 'undefined') {
81
+ return;
82
+ }
83
+ }
84
+ );
85
+ }
86
+
87
+ function shokaibun_1(e) {//②
88
+ let Msg1 = {//メッセージ1:初めの挨拶
89
+ "replyToken": e.replyToken,
90
+ "messages": [
91
+ {
92
+ "type": "text",
93
+ "text": "初めまして"
94
+ }
95
+ ]
96
+ };
97
+ let pro_1 = {
98
+ "method": "POST",
99
+ // "Content-Type": "application/json",
100
+ "headers": {
101
+ "Content-Type": "application/json",
102
+ "Authorization": "Bearer " + CHANNEL_ACCESS_TOKEN
103
+ },
104
+ "payload": JSON.stringify(Msg1)
105
+ };
106
+ var response = UrlFetchApp.fetch(url, pro_1);
107
+ // return response.getResponseCode();
108
+ return ContentService.createTextOutput(JSON.stringify({
109
+ 'content': 'post ok'
110
+ })).setMimeType(ContentService.MimeType.JSON);
111
+
112
+ };
113
+
114
+ function debug(message) {
115
+ spreadsSheet.getSheetByName('log').appendRow([message]);
116
+ }
117
+ ```

2

 

2022/12/23 13:07

投稿

退会済みユーザー
test CHANGED
@@ -1,6 +1,9 @@
1
1
  LINE Messaging API 経由で「初めまして」のメッセージを表示させる部分ですが、ヘッダー(pro_1)の書き方がドキュメントと異なっているようです。
2
2
  具体的には、"Content-Type" : "application/json" が headers の中にないため、
3
3
  content typeが jsonではなく デフォルトの 'x-www-form-urlencoded' という別の形式での送信となってしまっており、LINE側がうまく受け取れていないのだと考えられます。
4
+
5
+ 参考:
6
+ [公式ドキュメントへのリンク](https://developers.line.biz/ja/docs/messaging-api/nodejs-sample/#start-developing:~:text=index.js%E3%81%AEapp.post%E3%81%AB%E4%BB%A5%E4%B8%8B%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%BE%E3%81%97%E3%82%87%E3%81%86) の下にあるコードサンプル。
4
7
 
5
8
 
6
9
  下記のように "Content-Type" : "application/json" を headersの中に移動して、コード保存後、デプロイし直し、もう一度LINEからメッセージを送ってみて下さい。
@@ -30,6 +33,4 @@
30
33
  };
31
34
  ```
32
35
 
33
- 参考:
34
36
 
35
- [公式ドキュメントへのリンク](https://developers.line.biz/ja/docs/messaging-api/nodejs-sample/#start-developing:~:text=index.js%E3%81%AEapp.post%E3%81%AB%E4%BB%A5%E4%B8%8B%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%BE%E3%81%97%E3%82%87%E3%81%86) の下にあるコードサンプル。

1

 

2022/12/23 13:06

投稿

退会済みユーザー
test CHANGED
@@ -1,6 +1,7 @@
1
1
  LINE Messaging API 経由で「初めまして」のメッセージを表示させる部分ですが、ヘッダー(pro_1)の書き方がドキュメントと異なっているようです。
2
2
  具体的には、"Content-Type" : "application/json" が headers の中にないため、
3
3
  content typeが jsonではなく デフォルトの 'x-www-form-urlencoded' という別の形式での送信となってしまっており、LINE側がうまく受け取れていないのだと考えられます。
4
+
4
5
 
5
6
  下記のように "Content-Type" : "application/json" を headersの中に移動して、コード保存後、デプロイし直し、もう一度LINEからメッセージを送ってみて下さい。
6
7
 
@@ -28,3 +29,7 @@
28
29
  "payload" : JSON.stringify(Msg1)
29
30
  };
30
31
  ```
32
+
33
+ 参考:
34
+
35
+ [公式ドキュメントへのリンク](https://developers.line.biz/ja/docs/messaging-api/nodejs-sample/#start-developing:~:text=index.js%E3%81%AEapp.post%E3%81%AB%E4%BB%A5%E4%B8%8B%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%BE%E3%81%97%E3%82%87%E3%81%86) の下にあるコードサンプル。