質問編集履歴
5
エラーコードの日本語訳
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
-
サンプルコードを実行すると、「A http status of the response was '400 Bad Request'.」が返ってくる。
|
13
|
+
サンプルコードを実行すると、「A http status of the response was '400 Bad Request'.」(リクエストに問題があります。リクエストパラメータやJSONのフォーマットを確認してください。)が返ってくる。
|
14
14
|
|
15
15
|
LINE Messaging APIドキュメントを読んだところ署名検証が必要らしいが、どのようにコードに起こして実装すればよいのか分からない。
|
16
16
|
|
4
編集
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
署名検証
|
1
|
+
Ruby 署名検証のやり方
|
test
CHANGED
@@ -10,11 +10,9 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
-
サンプルコード
|
13
|
+
サンプルコードを実行すると、「A http status of the response was '400 Bad Request'.」が返ってくる。
|
14
14
|
|
15
|
-
|
15
|
+
LINE Messaging APIドキュメントを読んだところ署名検証が必要らしいが、どのようにコードに起こして実装すればよいのか分からない。
|
16
|
-
|
17
|
-
HTTP_X_LINE_SIGNATUREのまま実行すると、「A http status of the response was '400 Bad Request'.」が返ってくる。
|
18
16
|
|
19
17
|
|
20
18
|
|
3
タイトル変更
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
HTTP_X_LINE_SIGNATUREには何を記入すればいいのか
|
1
|
+
署名検証:HTTP_X_LINE_SIGNATUREには何を記入すればいいのか
|
test
CHANGED
File without changes
|
2
ドキュメントを追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -104,13 +104,49 @@
|
|
104
104
|
|
105
105
|
|
106
106
|
|
107
|
-
###
|
107
|
+
###APIのドキュメント
|
108
108
|
|
109
|
+
|
110
|
+
|
111
|
+
リクエストの送信元がLINEであることを確認するために署名検証を行わなくてはなりません。
|
112
|
+
|
113
|
+
各リクエストには X-Line-Signature ヘッダが付与されています。
|
114
|
+
|
115
|
+
X-Line-Signature ヘッダの値と、Request Body と Channel Secret から計算した Signature が同じものであることをリクエストごとに 必ず検証してください。
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
検証は以下の手順で行います。
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
Channel Secretを秘密鍵として、HMAC-SHA256アルゴリズムによりRequest Bodyのダイジェスト値を得る。
|
124
|
+
|
125
|
+
ダイジェスト値をBASE64エンコードした文字列が、Request Headerに付与されたSignatureと一致することを確認する。
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
```CHANNEL_SECRET = ... # Channel Secret string
|
130
|
+
|
109
|
-
|
131
|
+
http_request_body = request.raw_post # Request body string
|
132
|
+
|
133
|
+
hash = OpenSSL::HMAC::digest(OpenSSL::Digest::SHA256.new, CHANNEL_SECRET, http_request_body)
|
134
|
+
|
135
|
+
signature = Base64.strict_encode64(hash)
|
136
|
+
|
137
|
+
# Compare X-Line-Signature request header string and the signature
|
138
|
+
|
139
|
+
```
|
110
140
|
|
111
141
|
|
112
142
|
|
113
143
|
###補足情報(言語/FW/ツール等のバージョンなど)
|
144
|
+
|
145
|
+
ドキュメントURL
|
146
|
+
|
147
|
+
[https://devdocs.line.me/ja/#webhook](https://devdocs.line.me/ja/#webhook)
|
148
|
+
|
149
|
+
|
114
150
|
|
115
151
|
サンプルコードのURL
|
116
152
|
|
1
URLを追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -112,4 +112,10 @@
|
|
112
112
|
|
113
113
|
###補足情報(言語/FW/ツール等のバージョンなど)
|
114
114
|
|
115
|
+
サンプルコードのURL
|
116
|
+
|
117
|
+
[https://github.com/line/line-bot-sdk-ruby](https://github.com/line/line-bot-sdk-ruby)
|
118
|
+
|
119
|
+
|
120
|
+
|
115
121
|
Herokuをつかっています。
|