Приведенный ниже скрипт вызывает сайт Instagram «data1» и печатает 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.info('data', data);
var oldVariantOfData = data['entry_data']['ProfilePage'][0];
console.info('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"
равно «данные1 И данные2» (скрипт Google Apps — это подмножество JavaScript), который всегда сохраняет true
в вашей переменной instagramAccountName
.instagramAccountName
переменную Array
имен = ['n1','n2']
, а затем вызвать getInstagramData(username)
с помощью for
, for...of
цикла или forEach
метода.В итоге ваша функция должна выглядеть так (кстати, accountdata
должна быть определена во внешней области видимости, иначе вы получите 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Извините, забыл изменить ссылку - код пытался записать Array
имен в ячейку :) Кстати, ваша accountdata
переменная определена вне insertFollowerCount
? Если нет, пожалуйста, инициализируйте его с помощью var accountdata
Рад, что смог помочь! Взгляните на ссылка, когда у вас будет время — это поможет вам лучше понять, как работает скрипт приложения.
Ты абсолютно ГЕРОЙ! Спасибо. Но теперь у меня есть проблема с выводом: вместо того, чтобы печатать «data1» в качестве имени учетной записи, он печатает
[Ljava.lang.Object;@2587f384