Javascript Google应用程序脚本中的Bitly API V4:尝试调用单击摘要时出错

Javascript Google应用程序脚本中的Bitly API V4:尝试调用单击摘要时出错,javascript,api,google-apps-script,bitly,Javascript,Api,Google Apps Script,Bitly,我对应用程序脚本相当陌生,这是我第一个使用API的自定义函数。提前谢谢你的建议 我一直遵循这段代码将Bitly集成到Google表单中 他们为ShortenBitly提供的代码工作得很好,但是我无法让ExpandBitly或Stats函数工作 下面是我的BitlyStats代码,以及我得到的错误代码 * Retrieves the final URL from a bitlink * * @param {string} the bitly link * @return {string

我对应用程序脚本相当陌生,这是我第一个使用API的自定义函数。提前谢谢你的建议

我一直遵循这段代码将Bitly集成到Google表单中

他们为ShortenBitly提供的代码工作得很好,但是我无法让ExpandBitly或Stats函数工作

下面是我的BitlyStats代码,以及我得到的错误代码

 * Retrieves the final URL from a bitlink  
 *
 * @param {string} the bitly link
 * @return {string} the total clicks
 * @customfunction
 */

function bitlyStats(bitlink) {
  var bitlink = 'bitlink'
  Logger.log(bitlink)
  var accessToken = 'MYTOKEN';
  var fetchUrl = 'https://api-ssl.bitly.com/v4/bitlinks/' + bitlink + '/clicks/summary';
  Logger.log(fetchUrl)
  var headers = {
    'Authorization': 'Bearer '+ accessToken,
    'Content-Type': 'application/json',
  };
  var params = {
    'method' : 'get',
    'headers' : headers,
    'muteHttpExceptions' : true
  };
  var response = UrlFetchApp.fetch(fetchUrl, params);
  Logger.log(response.getContent());
  var clickCount = JSON.parse(response.getContent()).total_clicks;
  return clickCount;
}
这是错误消息

SyntaxError:意外标记,在JSON中的位置2 bitlyStats@Code.gs:26

第25行的日志内容为[52.0,48.0,52.0,32.0,112.0,97.0,103.0,101.0,32.0,110.0,111.0,116.0,32.0,102.0,111.0,117.0,110.0,100.0,10.0]

修改点:
  • HTTPResponse类的
    getContent()
    返回字节数组。我想这就是你的问题所在
  • 要检索文本值时,请使用
    getContentText()
  • 还有,关于您当前的
    [52.0,48.0,52.0,32.0,112.0,97.0,103.0,101.0,32.0,110.0,111.0,116.0,32.0,102.0,111.0,117.0,110.0,100.0,10.0]
    ,当这个字节数组被解码时,它的
    404页找不到
    。我认为您出现问题的原因是由于
    的端点中的
    var-bitlink='bitlink'
    https://api-ssl.bitly.com/v4/bitlinks/“+bitlink+”/单击/摘要“
    • 在本例中,作为测试用例,请使用您的示例缩短URL,如
      bit.ly/###
      作为
      bitlink
      的值
    • 如果未使用
      bit.ly/####
      的值,则会出现类似
      的错误,您当前被禁止访问此资源。
      。请小心这个
  • 在GET方法中,请求头中不需要使用
    'Content-Type':'application/json'
当这些点反映到脚本中时,它将变成如下所示

修改脚本: 注:
  • 在这个修改后的脚本中,它假设您的访问令牌是使用API的有效值。请小心这个
参考资料:

谢谢!这太棒了。我现在开始工作了。对于bitlink值,我使用了变量bitlink_url_parts=bitlink_url.split(“:/”);var bitlink=bitlink_url_parts[1]@欢迎光临。谢谢你让我知道。在这种情况下,我认为
bitlink
bit.ly/###
,因此可以使用该值。我很高兴你的问题解决了。如果您的问题已解决,请按“接受”按钮。与您有相同问题的其他人也可以将您的问题作为可以解决的问题。我认为你的问题和解决方案对他们会有帮助。如果你找不到按钮,尽管告诉我@谢谢你的回复。
function bitlyStats(bitlink) {
  var bitlink = 'bit.ly/###'; //  Please set your sample shortened URL here.

  Logger.log(bitlink)
  var accessToken = 'MYTOKEN';
  var fetchUrl = 'https://api-ssl.bitly.com/v4/bitlinks/' + bitlink + '/clicks/summary';
  Logger.log(fetchUrl)
  var headers = {
    'Authorization': 'Bearer '+ accessToken,
  };
  var params = {
    'method' : 'get',
    'headers' : headers,
    'muteHttpExceptions' : true
  };
  var response = UrlFetchApp.fetch(fetchUrl, params);
  Logger.log(response.getContentText());
  var clickCount = JSON.parse(response.getContentText()).total_clicks;
  return clickCount;
}