首页 > 解决方案 > 拥有多个 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
  };  
}

标签: google-apps-scriptgoogle-sheetsinstagram-api

解决方案


  1. 首先,只需通过名称引用您的全局变量,不需要this.
  2. 其次,"data1" && "data2"等于“data1 AND data2”(Google Apps 脚本是 JavaScript 的子集),它始终存储true在您的instagramAccountName变量中。
  3. 第三,有很多方法可以引用多个帐户名称,但是您可以将名称写入变量instagramAccountNamean ,然后使用 a 、循环或方法调用。Array= ['n1','n2']getInstagramData(username)forfor...offorEach

最后,您的函数应如下所示(顺便说一句,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]); 
  });     
};

参考

  1. forEachMDN 上的方法参考

推荐阅读