Google Sheets'da havolalar ustunini Apps Script bilan yechish
Ko'p yuklab olish vazifalari aslida jadvalda yashaydi: havolalar ustunli marketing jamoasi, postlar ro'yxatli tadqiqotchi. Apps Script API'ni to'g'ridan-to'g'ri chaqira oladi. Bu qo'llanma — skript, tezlik chegarasi ostida ushlab turadigan sur'at va nega bu maxsus funksiya emas, menyu amali.
Yangilangan
Kalitni jadvaldan tashqarida saqlang
Script Properties'da saqlang (Project Settings → Script Properties → saveapi_key). Katakdagi kalit jadvalning har nusxasi va eksporti bilan birga ketadi.
Fetch
Authorization sarlavhali va muteHttpExceptions'li UrlFetchApp — xato javobi tashlanmasdan parse qilinadi; JSON tanasida error.code bor, jadvalga yozmoqchi bo'lganingiz aynan shu.
JavaScript// Apps Script — Extensions → Apps Script
function resolve(link) {
const key = PropertiesService.getScriptProperties().getProperty("saveapi_key");
const res = UrlFetchApp.fetch(
"https://api.saveapi.org/v1/download?url=" + encodeURIComponent(link),
{ headers: { Authorization: "Bearer " + key }, muteHttpExceptions: true },
);
return JSON.parse(res.getContentText());
}Ustunni yeching
Diapazonni bir marta o'qing, aylantiring, har qatorga ikki katak yozing: media URL va OK, yoki bo'sh va xato kodi. Uyqu uzun ustunni kalitning daqiqalik chegarasi ostida ushlaydi — bepul tarifda 10, Pro'da 60.
JavaScript// A ustunidagi havolalar → B ustuniga media URL, C ga natija kodi
function resolveColumn() {
const sheet = SpreadsheetApp.getActiveSheet();
const rows = sheet.getRange(2, 1, sheet.getLastRow() - 1, 3).getValues();
rows.forEach((row, i) => {
if (!row[0] || row[1]) return; // bo'sh yoki allaqachon yechilgan
const data = resolve(row[0]);
const out = data.success
? [data.medias[0].url, "OK"]
: ["", data.error.code];
sheet.getRange(i + 2, 2, 1, 2).setValues([out]);
Utilities.sleep(6000); // bepul tarif: 10 so'rov/daqiqa
});
}Nega maxsus funksiya emas, menyu amali
Maxsus =SAVEAPI(A2) jadval qayta hisoblanganda har safar qayta ishlaydi, har qayta hisob esa hisoblanadigan so'rov. Yechishni amal sifatida (menyu bandi yoki tugma) ishga tushiring, natijasi bor qatorlarni o'tkazib yuboring — jadval har havola uchun bir marta kredit sarflaydi.
Qancha turadi
Muvaffaqiyatli yechish 1.5 kredit, yopiq yoki o'chirilgan havola 0.1, timeout hech narsa. 500 havolali ustun ~750 kredit — bepul 1 000 ichida.
Boshlashdan oldingi savollar
- =SAVEAPI(A2) kabi maxsus funksiya ishlatsam bo'ladimi?
- Bo'ladi, lekin har qayta hisob uni qayta ishlatadi va har ishga tushish hisoblanadigan so'rov. Bu qo'llanmadagi menyu amali naqshi har havola uchun bir marta kredit sarflaydi.
- Uzun ustunda skript to'xtab qoladimi?
- Apps Script ishni bir necha daqiqadan keyin to'xtatadi. Natijasi bor qatorlarni o'tkazib yuboring va qayta ishga tushiring — sikl qolgan joyidan davom etadi.
- Jadval faylni ham yuklab oladimi?
- UrlFetchApp media URL'ni olib DriveApp.createFile bilan Drive'ga saqlay oladi, Apps Script hajm chegaralari ichida. Katta videolar uchun URL'ni saqlang va boshqa joyda yuklab oling.
Bu yerda ishlatilgan platformalar
Boshqa qo'llanmalar
Qo'llanmani o'z kalitingiz bilan ishga tushiring
Kalit bir daqiqada. 1 000 bepul kredit, kartasiz, muddatsiz.