リッチメニューの反映
API2.0でリッチメニューを登録、利用しようと考えています。言語はGoogle Apps Scriptを使用しています。
以下のリッチメニューの登録ページを参考にコンテンツアップロード、リッチメニュー画像の登録をしました。
その後、既定リッチメニューを設定するために以下のページを参考にしてBotの部分更新をしようとしています。
const payload = {
"botId":botId,
"defaultRichmenuId":richmenuId
};
var bodya = JSON.stringify(payload);
const options = {
'method':'patch',
'headers':{
'Authorization':'Bearer '+ accesstoken,
'Content-Type':'application/json'
},
'payload': bodya
};
UrlFetchApp.fetch(url, options);
このようにしてリクエストしたところ、エラー400が帰ってきて、
{"code":"INVALID_PARAMETER","description":"Request body cannot be parsed."}
というエラーメッセージが表示されてしまい、リッチメニューが反映されません。
また、
"defaultRichmenuId":richmenuId
の部分を
"botName" : "aaa"
と書き換えても同じエラーメッセージが表示されてしまい、botの部分更新自体が上手く動いていません。
どのようにすれば良いのでしょうか。ご教授願います。
投稿に新しいコメントが追加されましたら通知を送信します。
コメント2
업데이트 된 답글입니다.
irh00315
~~~
let headers = {
"authorization": "Bearer " + accessToken,
"Content-Type" : "application/json"
}
let bodys = {
"defaultRichmenuId":"richmenuId"
}
let options = {
"headers": headers,
"method" : "patch",
"payload" : JSON.stringify(bodys)
}
const botUri = "https://www.worksapis.com/v1.0/bots/" + botId
let response = UrlFetchApp.fetch(botUri,options)
~~~
2022.09.15
업데이트 된 답글입니다.
fitstudy 投稿者
ありがとうございます。
原因は、「Path Parameters」をbodyに書くものだと勘違いしていたことでした。今までは「Path Parameters」をbodyに書いていて、問題が起きていませんでしたが、今回はそれが原因でした。
「Path Parameters」はHTTP Requestを行う際のurlに組み込む情報であり、bodyやヘッダーに書く必要はない。という、とても当たり前な事かもしれませんが、認識が間違っていることに気づくことができました。改めてありがとうございます。
2022.09.15
まだ、解決できませんか?
今すぐ実際に使用しているLINE WORKSユーザーに質問してみましょう。