javascript - 如何在 Google Apps 脚本中将 API key 添加到 UrlFetchApp

标签 javascript google-apps-script google-sheets urlfetch

已解决 感谢 Dimu Designs 的帮助。

以下作品。

function myFunction() {
     var url = "https://api.fortnitetracker.com/v1/profile/pc/Ninja";   var apiKey = "xxx-xxx-xxx";

   var res = UrlFetchApp.fetch(
    url,
    {
        "headers":{
            "TRN-Api-Key":apiKey
        }
    } );  var content = res.getContentText();   Logger.log(res);   Logger.log(content);

}

问题

我正在尝试在 Google 表格中使用 Google App Scripts 来调用外部 Fortnite API 来请求玩家数据。我一直在思考如何在传递请求时将 API key 添加为 header 。

这就是我到目前为止构建的(请不要笑)!...

function myFunction() {   
var res =
 UrlFetchApp.fetch("https://api.fortnitetracker.com/v1/profile/PC/Ninja?");
var content = res.getContentText();   Logger.log(res);  
Logger.log(content); 
}

当我尝试运行它时,我返回了以下错误:

Request failed for https://api.fortnitetracker.com/v1/profile/PC/Ninja? returned code 401. Truncated server response: {"message":"No API key found in request"} (use muteHttpExceptions option to examine full response

我已经尝试根据许多不同的帖子以多种方式添加我的 API key ,但它不起作用并且让我更加困惑(此时很容易完成)。

有没有人知道我如何才能完成脚本以确保我得到信息? :)

---编辑---

首先,感谢大家的帮助,这就是我们目前所处的位置。我现在尝试了以下方法:

var url = "https://api.fortnitetracker.com/v1/profile/pc/Ninja"; var apiKey = "xxx-xxxx-xxx";

var response = UrlFetchApp.fetch(
    url,
    {
        "headers":{
            "TRN-Api-Key":apiKey
        }
    } );

这次返回的不是 401 错误,而是 403 错误。

请注意,我还尝试使用“基本”来验证 header ,但这不起作用。

最佳答案

编辑 我怀疑 API 使用自定义 header 。当您注册 API key 时,您将获得以下形式的字符串:

TRN-Api-Key:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

我在这里猜测,但冒号之前的文本似乎是自定义 header ,而冒号之后的字符串是 API key 。

如果没有适当的文档,这仍然几乎是在黑暗中拍摄,但您可以尝试以下操作:

var url = "[FORTNITE-API-ENDPOINT]";
var apiKey = "[YOUR-API-KEY]"; // sans header and colon

var response = UrlFetchApp.fetch(
    url,
    {
        "headers":{
            "TRN-Api-Key":apiKey
        }
    }
);

此外,请确保查看 UrlFetchApp 文档以供将来引用: https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app

关于javascript - 如何在 Google Apps 脚本中将 API key 添加到 UrlFetchApp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51907871/

相关文章:

javascript - Angular JS 转发器 + Bootstrap 轮播

javascript - 在 sails js 中将所有 http 请求重定向到 https

javascript - 如何停止滑动到最后一张幻灯片?

google-apps-script - 使用 People API 将联系人添加到群组时出错

javascript - Google 电子表格 - 从 Zoho 获取记录

javascript - 无法在 Draft.js 中垂直调整图像大小

javascript - ImportXML 的 JavaScript 等价物是什么?

c# - 在哪里可以找到最新的 Google Docs API 以及示例的源代码?

javascript - Google Apps 脚本基于时间的触发器,根据电子表格中的值在自定义日期和时间触发

javascript - 在 Google Apps 脚本中的多行上写入单个值