google-apps-script - 拥有多个 var 数据
问题描述
下面的脚本调用“data1”的 instagram 站点并将其打印UserCount
到电子表格中。但我想使用不同的instagramAccountName
我想再设置 3 个数据。
var instagramAccountName = "data1"&&"data2";
不工作,你有什么建议?
var sheetName = "Tabellenblatt1";
var instagramAccountName = "data1";
function insertFollowerCount() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(this.sheetName);
accountdata = getInstagramData(this.instagramAccountName);
sheet.appendRow([instagramAccountName, Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd"), accountdata.followerCount]);
};
function getInstagramData(username) {
var r = new RegExp('<script type="text\/javascript">' +
'([^{]+?({.*profile_pic_url.*})[^}]+?)' +
'<\/script>');
var url = "https://www.instagram.com/" + username
var source = UrlFetchApp.fetch(url).getContentText();
var jsonStr = source.match(r)[2];
var data = JSON.parse(jsonStr);
console.log('data', data);
var oldVariantOfData = data['entry_data']['ProfilePage'][0];
console.log('oldVariantOfData', oldVariantOfData);
return {
followerCount : oldVariantOfData.graphql.user.edge_followed_by.count,
followCount : oldVariantOfData.graphql.user.edge_follow.count,
mediaCount : oldVariantOfData.graphql.user.edge_owner_to_timeline_media.count
};
}
解决方案
- 首先,只需通过名称引用您的全局变量,不需要
this
. - 其次,
"data1" && "data2"
等于“data1 AND data2”(Google Apps 脚本是 JavaScript 的子集),它始终存储true
在您的instagramAccountName
变量中。 - 第三,有很多方法可以引用多个帐户名称,但是您可以将名称写入变量
instagramAccountName
an ,然后使用 a 、循环或方法调用。Array
= ['n1','n2']
getInstagramData(username)
for
for...of
forEach
最后,您的函数应如下所示(顺便说一句,accountdata
应在外部范围内定义,否则您将得到 a ReferenceError
):
var instagramAccountName = ['data1','data2'];
function insertFollowerCount() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(sheetName);
instagramAccountName.forEach(function(username){
accountdata = getInstagramData(username);
sheet.appendRow([username, Utilities.formatDate(new Date(),
"GMT", "yyyy-MM-dd"), accountdata.followerCount]);
});
};
参考
forEach
MDN 上的方法参考
推荐阅读
- angular - 处理复杂请求时如何改进服务器端渲染?
- javascript - 导入的函数在 puppeteer 中不起作用
- reactjs - React:如何从React 路由器传递道具?
- django - Django 服务器显示错误的时间
- python - Imcompatible shapes: [1020,1,1] vs. [1019,1,1] - Tensorflow
- android - Correct way to close DialogFragment when using Navigation component?
- cython - 我可以在@cython.locals 中使用 typedef
- python - 如何打印字典的标题?
- dataset - Watson Assistant 的数据集
- python - 将元素附加到双嵌入字典添加到所有父元素