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

質問編集履歴

2

修正

2018/11/28 14:05

投稿

vac
vac

スコア11

title CHANGED
File without changes
body CHANGED
@@ -58,7 +58,7 @@
58
58
 
59
59
  POSTがされないのか、doPost()が呼ばれていないのか、返答が遅れていないのか、よくわかりません。Loggerも使ってみましたが何も表示されずよくわからず仕舞いです...
60
60
 
61
- ## デバッグ
61
+ ## 追加検証(追記)
62
62
  console.log()等で原因探しを進めてみましたが、StackdriverLoggingの方には、リクエスト失敗のエラーしか出力されません。
63
63
  ```
64
64
  function doPost(e) {

1

デバッグを進めました

2018/11/28 14:04

投稿

vac
vac

スコア11

title CHANGED
File without changes
body CHANGED
@@ -56,4 +56,55 @@
56
56
  - GAS側でアプリケーションにアクセスするユーザは「全員(匿名ユーザを含む)」になっています
57
57
  - LINE Developers側でWebhookの接続確認を行うと「✔︎成功しました」となります
58
58
 
59
- POSTがされないのか、doPost()が呼ばれていないのか、返答が遅れていないのか、よくわかりません。Loggerも使ってみましたが何も表示されずよくわからず仕舞いです...
59
+ POSTがされないのか、doPost()が呼ばれていないのか、返答が遅れていないのか、よくわかりません。Loggerも使ってみましたが何も表示されずよくわからず仕舞いです...
60
+
61
+ ## デバッグ
62
+ console.log()等で原因探しを進めてみましたが、StackdriverLoggingの方には、リクエスト失敗のエラーしか出力されません。
63
+ ```
64
+ function doPost(e) {
65
+ console.info("ここまできた"); //出力されてない
66
+ var json = JSON.parse(e.postData.contents);
67
+
68
+ //返信するためのトークン取得
69
+ var reply_token= json.events[0].replyToken;
70
+ if (typeof reply_token === 'undefined') {
71
+ return;
72
+ }
73
+
74
+ //送られたメッセージ内容を取得
75
+ var message = json.events[0].message.text;
76
+
77
+ // メッセージを返信
78
+ var response = UrlFetchApp.fetch(line_endpoint, {
79
+ 'headers': {
80
+ 'Content-Type': 'application/json; charset=UTF-8',
81
+ 'Authorization': 'Bearer ' + access_token,
82
+ },
83
+ 'method': 'post',
84
+ 'payload': JSON.stringify({
85
+ 'replyToken': reply_token,
86
+ 'messages': [{
87
+ 'type': 'text',
88
+ 'text': message,
89
+ }],
90
+ }),
91
+ });
92
+
93
+ // サンプル
94
+ try {
95
+ var rcode = response.getResponseCode();
96
+ var rbody = response.getContentText();
97
+ if (rcode !== 200) {
98
+ console.log("%d: %s", rcode, rbody); //出力されてない
99
+ }
100
+ } catch(e) {
101
+ console.log(e); //出力されていない
102
+ }
103
+ return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);
104
+ }
105
+ ```
106
+ ##### 結果
107
+ ```
108
+ https://api.line.me/v2/bot/message/reply のリクエストに失敗しました(エラー: 401)。サーバー応答の一部: {"message":"Authentication failed due to the following reason: accessToken expired(2). Confirm that the access token in the authorization header is...(応答の全文を見るには muteHttpExceptions オプションを使用してください) at doPost(コード:19)
109
+ ```
110
+ アクセストークンは再発行して最新のものに書き換えたので、問題ないと思いますが、何か手がかりがあれば教えていただけると嬉しいです。