0

暴雪刚刚关闭了他们的旧 API,并进行了更改,因此您需要一个 apikey。我将 URL 更改为新的 api,并添加了 API 密钥。我知道该 URL 是有效的。

var toonJSON = UrlFetchApp.fetch("eu.api.battle.net/wow/character/"+toonRealm+"/"+toonName+"?fields=items,statistics,progression,talents,audit&apikey="+apiKey, {muteHttpExceptions: true})
var toon = JSON.parse(toonJSON.getContentText())

JSON.pase 只返回一个空对象

return toon.toSorce() // retuned ({})

我花了很多时间来看看我是否能找到问题。空了。认为它与“响应标题”有关。

响应标题:http : //pastebin.com/t30giRK1(我从 dev.battle.net(暴雪 api 站点)获得它们 JSON:http ://pastebin.com/CPam4syG

4

3 回答 3

0

所以我发现了问题:

  1. 我在 URL 中需要 https://,因为我在几个小时后发现我遇到了 SSL 错误
  2. 如果您只使用 toString 而不是 getContentText 它可以工作。为什么 getContentText 不起作用,我不确定。
于 2016-02-16T08:35:56.150 回答
0

是同样的问题,这对我有用(不要忘记粘贴你的密钥)

var toonJSON = UrlFetchApp.fetch("https://eu.api.battle.net/wow/character/"+toonRealm+"/"+toonName+"?fields=items%2Cstatistics%2Cprogression%2Caudit&locale=en_GB&apikey= ... ")
于 2016-02-29T14:09:02.270 回答
0

我认为这是您正在使用的代码。我可以通过打开您的 pastebin JSON http://pastebin.com/raw/CPam4syG的原始网址来解析它 并使用以下代码

var text = document.getElementsByTagName('pre')[0].innerHTML;
var parse = JSON.parse(text);

所以总而言之,我认为UrlFetchApp.fetch返回的是 {}

于 2016-02-15T21:27:52.287 回答