【发布时间】:2020-12-08 11:19:00
【问题描述】:
我有一个 Infobip 测试帐户,我正在尝试使用他们的 API 向用户发送消息。作为一种授权类型,我使用的是 API Key Header。我相信我不知道将这个密钥放在代码上的哪个位置。我正在尝试使用标头上的密钥,但总是收到错误 401。我知道我没有根据文档使用正确的有效负载参数,但无论如何,我相信这不是产生此错误的原因。
function myFunction_infobip() {
var url = "https://*base URL given*.api.infobip.com/omni/1/advanced";
var authHeader = '';
var payload = JSON.stringify({
"scenarioKey":"AD9E01A5DC7BEE2C2B828D208182A611",
"whatsApp":{"text":"test."},});
var headers = {
"Authorization": "App <API key given>",
"Content-Type": "application/json",
"Accept": "application/json"};
var options = {
"method": "POST",
"contentType": "application/json",
"headers": headers,
"payload": payload
};
var response = UrlFetchApp.fetch(url, options);
Logger.log("response: "+response);
}
如果有任何建议/线索,我将不胜感激!
【问题讨论】:
-
我不确定,但基于the official docs,我想说您必须在授权标头的API密钥之前附加字符串
App,例如"Authorization": "App " + API_KEY。你能检查一下这是否能解决你的问题吗?在这种情况下,我会考虑将其发布为答案。 -
嗨@Iamblichus,非常感谢您的评论。我忘记将代码放在“App”部分上方,但是当我收到此错误时,我已经在运行代码了。但很高兴你注意到了,我已经在这里编辑了代码。我不知道是什么导致了这个错误。我应该编辑清单文件吗?我迷路了
-
I believe this is not the reason to generate this error.为什么不呢?其他一切似乎都井井有条。我猜服务器不允许访问资源,因为您无权访问请求的资源 -
@TheMaster 我认为一个错误会导致“错误请求”错误而不是“未经授权”错误,但我会尝试一下,看看是不是这样
-
@TheMaster
Bad request would be thrown if there are syntax errors in your-> 确切地说,这里的情况是什么,它们的语法错误。我更改了正确语法的参数,但我仍然认为是 401 错误。但是,我已经能够得到它。我将 URL 放在工资单中,现在它运行良好。我将在那里发布解决方案。感谢您的帮助!
标签: google-apps-script api-key http-status-code-401 urlfetch unauthorized