【问题标题】:Bandcamp API sales_report endpointBandcamp API sales_report 端点
【发布时间】:2020-11-10 16:39:20
【问题描述】:

我真的可以通过调用 Bandcamp API 得到一些帮助。对于我向 /http://bandcamp.com/api/sales/1/sales_report/ 提出的每个请求,响应都包含:

/"error_message":"JSON 解析错误:757:''/

这是一个不成功的调用示例:

var artistId = <my band_id>
var memberArtistId=''; // optional - only applies to label accounts
var start_time='2018-01-01 23:59:59';
var end_time='2020-01-01 23:59:59'; // optional
var format='json'; // optional
 
 var objParams = {
  "band_id": artistId,
  "member_band_id": memberArtistId,
  "start_time": start_time, 
  "end_time": end_time,
  "format": format
}
   
var parameters = {
  headers:{Authorization:'Bearer '+access_token},
  method:"post",      
  payload:objParams,
  muteHttpExceptions:true
 };

var response = UrlFetchApp.fetch(token_url,parameters).getContentText(); 

我使用 /https://bandcamp.com/developer/sales/ 上的示例得到了相同的结果。我认为我可能没有在发出请求的 JSON 对象中正确地转义或封装字符。

也许有人可以为我提供一个成功的例子,这样我就可以知道我哪里出错了? curl 命令会很酷,但任何格式都可以。我碰巧在使用 Google Apps Script(所以,基本上是 JavaScript)。

非常感谢!

【问题讨论】:

  • 我提出了一个修改后的脚本作为答案。你能确认一下吗?但不幸的是,我无法测试脚本。因此,当我的建议不能直接解决您的问题时,我深表歉意。
  • 是的,我可以确认这是我的问题的解决方案。谢谢。

标签: javascript json api google-apps-script


【解决方案1】:

我认为在您的情况下,可能需要将请求正文作为 JSON 值发送。那么下面的修改呢?

发件人:

var parameters = {
  headers:{Authorization:'Bearer '+access_token},
  method:"post",      
  payload:objParams,
  muteHttpExceptions:true
 };

收件人:

var parameters = {
  headers: {Authorization: 'Bearer ' + access_token},
  method: "post",
  payload: JSON.stringify(objParams),
  contentType: "application/json",
  muteHttpExceptions: true
};

注意:

  • 在此修改中,假设您的access_tokenobjParams 是正确的。请注意这一点。

参考:

【讨论】:

    猜你喜欢
    • 2021-05-24
    • 2013-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-20
    • 2012-10-14
    • 2011-06-29
    • 1970-01-01
    相关资源
    最近更新 更多