我想从 Google 表格内的 Snapchat API 导入数据(文档位于:https://marketingapi.snapchat.com/docs/?shell#get-all-ad-squads-under-a-campaign)。
目前我正在以一种低效的方式做到这一点,一次绘制一个结果。相反,如果可能的话,我想使用循环来绘制它们。
目前,这是我的代码:
function readData() {
var accesstoken = "TOKEN"
var sheet = SpreadsheetApp.getActiveSheet()
var adseturl = "https://adsapi.snapchat.com/v1/campaigns/e431cbcd-2281-49fe-8d05-b26c87660eb5/adsquads"
var adseturlresponse = UrlFetchApp.fetch(adseturl, {
headers: {
"Authorization": "Bearer " + accesstoken
}
});
var adsetdata = JSON.parse(adseturlresponse.getContentText());
var adsetname1range = sheet.getRange('C3')
var adsetname2range = sheet.getRange('C4')
var adsetname3range = sheet.getRange('C5')
var adsetname4range = sheet.getRange('C6')
var adsetname5range = sheet.getRange('C7')
var adsetname6range = sheet.getRange('C8')
var adsetname7range = sheet.getRange('C9')
var adsetname8range = sheet.getRange('C10')
var adsetname1= adsetdata.adsquads[0].adsquad.name
adsetname1range.setValue(adsetname1)
var adsetname2= adsetdata.adsquads[1].adsquad.name
adsetname2range.setValue(adsetname2)
var adsetname3= adsetdata.adsquads[2].adsquad.name
adsetname3range.setValue(adsetname3)
var adsetname4= adsetdata.adsquads[3].adsquad.name
adsetname4range.setValue(adsetname4)
var adsetname5= adsetdata.adsquads[4].adsquad.name
adsetname5range.setValue(adsetname5)
var adsetname6= adsetdata.adsquads[5].adsquad.name
adsetname6range.setValue(adsetname6)
var adsetname7= adsetdata.adsquads[6].adsquad.name
adsetname7range.setValue(adsetname7)
var adsetname8= adsetdata.adsquads[7].adsquad.name
adsetname8range.setValue(adsetname8)
}
如您所见,我正在将结果一一绘制出来,如下所示:
var adsetdata = JSON.parse(adseturlresponse.getContentText());
var adsetname1range = sheet.getRange('C3')
var adsetname2range = sheet.getRange('C4')
var adsetname3range = sheet.getRange('C5')
var adsetname4range = sheet.getRange('C6')
var adsetname5range = sheet.getRange('C7')
var adsetname6range = sheet.getRange('C8')
var adsetname7range = sheet.getRange('C9')
var adsetname8range = sheet.getRange('C10')
var adsetname1= adsetdata.adsquads[0].adsquad.name
adsetname1range.setValue(adsetname1)
var adsetname2= adsetdata.adsquads[1].adsquad.name
adsetname2range.setValue(adsetname2)
var adsetname3= adsetdata.adsquads[2].adsquad.name
adsetname3range.setValue(adsetname3)
var adsetname4= adsetdata.adsquads[3].adsquad.name
adsetname4range.setValue(adsetname4)
var adsetname5= adsetdata.adsquads[4].adsquad.name
adsetname5range.setValue(adsetname5)
var adsetname6= adsetdata.adsquads[5].adsquad.name
adsetname6range.setValue(adsetname6)
var adsetname7= adsetdata.adsquads[6].adsquad.name
adsetname7range.setValue(adsetname7)
var adsetname8= adsetdata.adsquads[7].adsquad.name
adsetname8range.setValue(adsetname8)
但是,我希望能够循环
adsetdata.adsquads[i].adsquad.name
此外,这里我的结果来自“C3:C10”,但行数是动态的,具体取决于结果数。
感谢您对我如何实现这一目标提出的意见。
最佳答案
在你的脚本中,进行以下修改怎么样?
来自:
var adsetname1range = sheet.getRange('C3')
var adsetname2range = sheet.getRange('C4')
var adsetname3range = sheet.getRange('C5')
var adsetname4range = sheet.getRange('C6')
var adsetname5range = sheet.getRange('C7')
var adsetname6range = sheet.getRange('C8')
var adsetname7range = sheet.getRange('C9')
var adsetname8range = sheet.getRange('C10')
var adsetname1= adsetdata.adsquads[0].adsquad.name
adsetname1range.setValue(adsetname1)
var adsetname2= adsetdata.adsquads[1].adsquad.name
adsetname2range.setValue(adsetname2)
var adsetname3= adsetdata.adsquads[2].adsquad.name
adsetname3range.setValue(adsetname3)
var adsetname4= adsetdata.adsquads[3].adsquad.name
adsetname4range.setValue(adsetname4)
var adsetname5= adsetdata.adsquads[4].adsquad.name
adsetname5range.setValue(adsetname5)
var adsetname6= adsetdata.adsquads[5].adsquad.name
adsetname6range.setValue(adsetname6)
var adsetname7= adsetdata.adsquads[6].adsquad.name
adsetname7range.setValue(adsetname7)
var adsetname8= adsetdata.adsquads[7].adsquad.name
adsetname8range.setValue(adsetname8)
致:
var values = adsetdata.adsquads.map(({ adsquad: { name } }) => [name]);
sheet.getRange(3, 3, values.length).setValues(values);
- 运行此修改后的脚本时,将从
adsetdata.adsquads
数组中检索值并将其放入“C”列。
引用:
关于json - 如何在 Apps 脚本内循环 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75862842/