背景
PythonでLINE Messaging APIをたたくときにそこそこ詰まってしまいました。
エラー内容でググっても記事がヒットしなかったので、同じエラーで詰まっている人の役に立てればうれしいです
エラーが起きたコード
import requests
url = " https://api.line.me/v2/bot/message/push"
header = {
"Content-Type": "application/json",
"Authorization": "Bearer {チャネルアクセストークン}"
}
body = {
"to": "Ub66965b7294ff3a70a2804b4560.....",
"messages": [
{
"type":"text",
"text":"Hello"
}
]
}
res = requests.post(url=url, headers=header, data=body)
print(res.text)
実行結果
{"message":"The property, '', in the request body is invalid (line: 1, column: 1)"}
解決策
変数body
をdict
型からstr
型キャストするとメッセージを送信することができました!
dict
からstr
への変換はjson.dumps()
を使います
import requests
import json # jsonモジュールをインストール
url = " https://api.line.me/v2/bot/message/push"
header = {
"Content-Type": "application/json",
"Authorization": "Bearer {チャネルアクセストークン}"
}
body = {
"to": "Ub66965b7294ff3a70a2804b4560.....",
"messages": [
{
"type":"text",
"text":"Hello"
}
]
}
#これ!
body = json.dumps(body)
res = requests.post(url=url, headers=header, data=body)
print(res.text)
header
はdict
型のまま行けたことが罠でした、、