Google apps script Google应用程序脚本UrlFetchApp.fetch API密钥头:获取401错误

Google apps script Google应用程序脚本UrlFetchApp.fetch API密钥头:获取401错误,google-apps-script,api-key,http-status-code-401,urlfetch,unauthorized,Google Apps Script,Api Key,Http Status Code 401,Urlfetch,Unauthorized,我有一个Infobip测试帐户,我正试图使用它向使用API的用户发送消息。作为授权类型,我使用API密钥头。我想我不知道把这把钥匙放在密码上的什么地方。我试图使用标题上的键,但我总是得到错误401。我知道我没有根据文档使用正确的有效负载参数,但无论如何,我相信这不是产生此错误的原因 function myFunction_infobip() { var url = "https://*base URL given*.api.infobip.com/omni/1/advanced

我有一个Infobip测试帐户,我正试图使用它向使用API的用户发送消息。作为授权类型,我使用API密钥头。我想我不知道把这把钥匙放在密码上的什么地方。我试图使用标题上的键,但我总是得到错误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);
}
函数myFunction\u infobip(){
var url=“https://*给定的基本url*.api.infobip.com/omni/1/advanced”;
var authHeader='';
var payload=JSON.stringify({
“场景键”:“AD9E01A5DC7BEE2C2B828D208182A611”,
“whatsApp”:{“text”:“test.},});
变量头={
“授权”:“应用程序”,
“内容类型”:“应用程序/json”,
“接受”:“应用程序/json”};
变量选项={
“方法”:“发布”,
“contentType”:“application/json”,
“标题”:标题,
“有效载荷”:有效载荷
};
var response=UrlFetchApp.fetch(url,选项);
Logger.log(“响应:”+响应);
}
如果您能给我任何建议/线索,我将不胜感激

OP的答案从问题移到:


对于那些有同样问题的人,经过多次尝试,我找到了解决办法。我刚刚在有效负载中添加了URL,现在它工作得非常好:

function myFunction_infobip() {
 
  var url = "https://*base URL given*.api.infobip.com/omni/1/advanced";
  var authHeader = '';
  var payload = JSON.stringify({
  "url": "https://*base URL given*.api.infobip.com/omni/1/advanced",
  "scenarioKey":"AD9E01A5DC7BEE2C2B828D208182A611",
  "WhatsApp":<insert here the parameters>);
 
  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);
}
函数myFunction\u infobip(){
var url=“https://*给定的基本url*.api.infobip.com/omni/1/advanced”;
var authHeader='';
var payload=JSON.stringify({
“url”:“https://*给定的基本url*.api.infobip.com/omni/1/advanced”,
“场景键”:“AD9E01A5DC7BEE2C2B828D208182A611”,
“WhatsApp”:;
变量头={
“授权”:“应用程序”,
“内容类型”:“应用程序/json”,
“接受”:“应用程序/json”};
变量选项={
“方法”:“发布”,
“contentType”:“application/json”,
“标题”:标题,
“有效载荷”:有效载荷
};
var response=UrlFetchApp.fetch(url,选项);
Logger.log(“响应:”+响应);
}

我不确定,但基于,我认为您必须在授权头上的API键之前附加字符串
App
,如
“Authorization”:“App”+ ApIYKEY < /代码>。你能检查它是否解决了你的问题?在这种情况下,我会考虑把它作为答案。嗨,IAMBLIICUS,非常感谢你的评论。我忘了把代码放在“app”上面。但是当我得到这个错误时,我已经在用它运行代码了。但是很高兴你注意到了,我已经在这里编辑了代码。我不知道是什么导致了这个错误。我应该编辑清单文件吗?我在这里迷路了
我相信这不是产生这个错误的原因。
为什么不?其他一切似乎都正常。我猜服务器不允许访问该资源,因为您无权访问请求的资源resource@TheMaster我认为由此产生的错误将导致“错误请求”错误,而不是“未经授权”一个,但我会尝试一下,看看是不是真的that@TheMaster
如果您的
->中存在语法错误,则会引发错误的请求确切地说,这里的情况是,它们的语法错误。我更改了参数以获得正确的语法,但我仍然得到了401错误。但是,我已经能够得到它。我把URL放在工资单里,现在它工作得很好。我会在那里发布解决方案。谢谢你的帮助!