我正在尝试使用 cloudflare worker(粘贴在下面)通过 Twilio API 发送 SMS 消息。CURL 请求(也粘贴在下面)我让工作人员停止工作。
根据工作人员的 400 错误,消息正文未正确传递
{"code": 21602, "message": "Message body is required.", "more_info": "https://www.twilio.com/docs/errors/21602", "status": 400}
但代码对我来说看起来不错。我们至少可以确认标头已正确传递,因为弄乱授权值会更改错误。
我还查看了模板库中的示例 POST 请求,但看不到失败的原因。
https://developers.cloudflare.com/workers/templates/pages/post_json/
我需要在我的工作人员代码中进行哪些更改才能使 POST 请求正常工作?
注意:我知道我不应该将 Twilio Auth 令牌放在正文中,但我稍后会轮换密钥。
async function handleRequest(request) {
const init = {
body: JSON.stringify(body),
method: 'POST',
headers: {
'content-type': 'application/json',
'Authorization': "Basic " + btoa('[account id]:[Authtoken]'),
},
}
return await fetch(url, init)
}
addEventListener('fetch', event => {
return event.respondWith(handleRequest(event.request))
})
const url = 'https://api.twilio.com/2010-04-01/Accounts/[Account id]/Messages.json'
const body = {
Body:"Hello World",
From:"+[some number]",
To:"+[some number]]",
}
curl 'https://api.twilio.com/2010-04-01/Accounts/[Account id]/Messages.json' -X POST \
--data-urlencode 'To=+[some number]' \
--data-urlencode 'From=+[some number]' \
--data-urlencode 'Body=Hello World' \
-u [account id]:[auth token]