能够在脚本编辑器中成功运行脚本,但不能从表单中运行脚本

时间:2018-01-05 22:18:44

标签: javascript google-apps-script

因此,我尝试使用Google App Script从Binance获取一些信息到Google表格中。当我从脚本编辑器运行脚本时,它会根据GET响应正确修改页面。以下是该函数的代码:

function getCoinUSDValueBinance(){

   var url = 'https://api.binance.com/api/v3/ticker/price'
   Logger.log('URL set');

   //Calling data from api
   var response = UrlFetchApp.fetch(url, {'muteHttpExceptions': true});

   //Parse the data response to an object
   var dataResponse = JSON.parse(response);
   /* Work with Response here */

}

不幸的是,当我使用以下代码将该函数添加到工作表中的api菜单时,将其添加到菜单中:

function onOpen() {
  var ui = SpreadsheetApp.getUi();
   ui.createMenu('API Menu')
    .addItem('Import GDAX Price Data', 'getAllCoinValues')
    .addItem('Binance', 'getCoinUSDValueBinance')
    .addToUi();
}

我最终获得的响应与在脚本编辑器中运行调用时的响应不同。脚本编辑器中的响应是200,具有正确的响应正文。工作表中的响应是403,具有禁止的响应主体。如何在工作表上调用函数时如何修复错误的响应?

由于

1 个答案:

答案 0 :(得分:0)

据我了解,您无法在需要权限的菜单项中添加任何功能才能工作。 URL提取的情况如何。你可以通过使用按钮打开一个对话框或侧栏,然后有一个调用get函数的按钮来解决这个问题。这是应用程序脚本的安全功能,可防止恶意代码在安装或首次打开时执行等。