在Google Sheets v3上使用JSON获取URL

bd1hkmkf  于 2022-12-24  发布在  Go
关注(0)|答案(1)|浏览(116)

我在Google Apps脚本中有一个JSON代码,它接受Spotify URL并将关注者数量粘贴到您引用该URL的单元格中,例如=SAMPLE(A2)(其中A2包含URL)
返回的值为空,没有错误提示。我尝试过使用Spotify API,但当从你不拥有的Spotify帐户获取数据时,这是不可能的(至少从我的理解)。
下面是原始帖子= FetchingURL Using JSON on Google Sheets v2
以下是我目前在Google Apps脚本中的代码。(由@Tanaike提供)

function SAMPLE(url) {
  const res = UrlFetchApp.fetch(url).getContentText();
  const v = res.match(/<script id\="initial-state" type\="text\/plain">([\s\S\w]+?)<\//);
  if (!v || v.length != 2) return "Value cannot be retrieved.";
  const obj = JSON.parse(Utilities.newBlob(Utilities.base64Decode(v[1].trim())).getDataAsString());
  const value = Object.entries(obj.entities.items).reduce((n, [k, o]) => {
    if (k.includes("spotify:playlist:")) n.push(o.followers.total);
    return n;
  }, []);
  return value.length > 0 ? value[0] : "Value cannot be retrieved.";
}
bjp0bcyl

bjp0bcyl1#

在你的表演脚本中,以下的修改怎么样?

发件人:

if (k.includes("spotify:playlist:")) n.push(o.followers.total);

收件人:

if (k.includes("spotify:playlist:")) n.push(o.followers);
  • JSON对象的规范似乎已经更改。

相关问题