{"id":304584,"date":"2020-05-31T15:00:41","date_gmt":"2020-05-31T15:00:41","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=304584"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=304584","title":{"rendered":"\u0423\u043c\u043d\u043e\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0433\u0440\u0443\u043f\u043f \u0432 Google \u0422\u0430\u0431\u043b\u0438\u0446\u044b \u0447\u0435\u0440\u0435\u0437 VK API, Tampermonkey \u0438 Telegram \u0431\u043e\u0442\u0430"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/504664\/\">\u041a\u0430\u043a \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0433\u0440\u0443\u043f\u043f \u0432 Google \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u0445 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0441 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c?<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/hr\/jq\/sf\/hrjqsf-vqmo0b_zofufnv6lt3ls.png\"><\/div>\n<p>  <b>\u0414\u0430\u043d\u043e<\/b>: \u0410\u043a\u043a\u0430\u0443\u043d\u0442\u044b \u0432 Google, VK, Telegram.<br \/>  <b>\u0417\u0430\u0434\u0430\u0447\u0430<\/b>: \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0433\u0440\u0443\u043f\u043f \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0443\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u043f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<br \/>  <b>\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b<\/b>: Google Apps Script (GAS), VK API, Tampermonkey, Telegram Bot API.<\/p>\n<p>  <a name=\"habracut\"><\/a><\/p>\n<h3>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 Google \u0422\u0430\u0431\u043b\u0438\u0446\u044b<\/h3>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u043d\u043e\u0432\u0443\u044e Google \u0422\u0430\u0431\u043b\u0438\u0446\u0443.<br \/>  \u0414\u0435\u043b\u0430\u0435\u043c \u0437\u0430\u043a\u0440\u0435\u043f\u043b\u0451\u043d\u043d\u044b\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a (\u043f\u043e\u0442\u043e\u043c \u0432\u0441\u0435 \u0446\u0438\u043a\u043b\u044b \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u0430 \u044f\u0447\u0435\u0435\u043a \u0438\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u0431\u0443\u0434\u0443\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0441 0, \u0430 \u0441 1).<br \/>  \u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043d\u0430\u0448 \u0448\u0430\u0431\u043b\u043e\u043d \u0433\u043e\u0442\u043e\u0432.<br \/>  \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435, \u044f \u043d\u0435 \u0441\u0434\u0435\u043b\u0430\u043b \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0443 \u043a \u043a\u043e\u043b\u043e\u043d\u043a\u0430\u043c \u0447\u0435\u0440\u0435\u0437 \u0438\u043c\u0435\u043d\u0430 (\u043d\u0435 \u0445\u043e\u0442\u0435\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0446\u0438\u043a\u043b\u044b), \u0442\u0430\u043a \u0447\u0442\u043e \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u0432\u0441\u0435\u0433\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0431\u0443\u0434\u0443 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u0436\u0451\u0441\u0442\u043a\u043e \u0437\u0430\u0448\u0438\u0442\u043e\u043c\u0443 \u043d\u043e\u043c\u0435\u0440\u0443 \u043a\u043e\u043b\u043e\u043d\u043a\u0438.<\/p>\n<p>  \u0416\u043c\u0451\u043c \u00ab\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u2014 \u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432\u00bb.  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ex\/ge\/xg\/exgexg7amygeqbhjaaudvtir3p8.png\"><\/div>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0451\u043c 2 \u0441\u043a\u0440\u0438\u043f\u0442\u0430: <b>\u041a\u043e\u0434.gs<\/b> \u0438 <b>\u0411\u043e\u0442.gs<\/b>.  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043e\u0434.gs<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"javascript\">access_token = '1111111111' \/\/ VK token ss = SpreadsheetApp.getActiveSpreadsheet() \/\/ \u0422\u0430\u0431\u043b\u0438\u0446\u0430 sheet = ss.getSheets()[getNumSheet('\u0413\u0440\u0443\u043f\u043f\u044b')] \/\/ \u041b\u0438\u0441\u0442 data = sheet.getDataRange().getValues() \/\/ \u0412\u0441\u0435 \u044f\u0447\u0435\u0439\u043a\u0438 numRows = sheet.getLastRow()+1 \/\/ \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0441\u0442\u0440\u043e\u043a\u0430 faveTag = '\u043c\u0443\u0437.\u0433\u0440\u0443\u043f\u043f\u044b' \/\/ \u0422\u0435\u0433 \u0437\u0430\u043a\u043b\u0430\u0434\u043e\u043a \u0432 \u0412\u041a  \/\/ \u041f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 get \u0437\u0430\u043f\u0440\u043e\u0441\u044b function doGet(e) { try {     var link = e.parameters['link']     \/*       A - \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435       B - English       C - \u0421\u0441\u044b\u043b\u043a\u0430       D - \u0413\u043e\u0440\u043e\u0434       E - \u0416\u0430\u043d\u0440       F - \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435       G - \u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435     *\/     var n = searchExists(link)     if (n != false) return ContentService.createTextOutput('\u0413\u0440\u0443\u043f\u043f\u0430 '+n+' \u0443\u0436\u0435 \u0435\u0441\u0442\u044c!')     \/\/ \u0417\u0430\u043f\u0440\u043e\u0441 \u0432 API VK https:\/\/vk.com\/dev\/groups.getById     var html = UrlFetchApp.fetch('https:\/\/api.vk.com\/method\/groups.getById.json?group_id='+link+'&amp;fields=city,description&amp;access_token='+access_token+'&amp;v=5.107')     \/\/ \u041f\u0430\u0440\u0441\u0438\u043c \u0432 json \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 response     var json = JSON.parse(html).response[0]     addInTableFromArray(json, link)     sort()     return ContentService.createTextOutput('\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e')   } catch (e) {      return ContentService.createTextOutput('\u041e\u0448\u0438\u0431\u043a\u0430 \u0438\u0437 \u0433\u0443\u0433\u043b\u043e\u0442\u0430\u0431\u043b\u0438\u0446 doGet! '+e)   } }  \/\/ \u041f\u043e\u0438\u0441\u043a \u0441\u0442\u0438\u043b\u044f\/\u0436\u0430\u043d\u0440\u0430 \u0433\u0440\u0443\u043f\u043f\u044b \u0438\u0437 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u043e \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043a\u0435 function searchGenre(txt) {   var t = txt.match(\/(?:(?:\u0441\u0442\u0438\u043b[\u044c|\u044f|\u044e|\u0435\u043c|\u0435]|genre|\u0436\u0430\u043d\u0440[\u0430|\u0443|\u043e\u043c|\u0435]?)[\\s:-]+){1}([a-z\u0430-\u044f\\\/-]+)\/i)   if(txt != '' &amp;&amp; t) return t[1] }  \/\/ \u041f\u043e\u0438\u0441\u043a \u0440\u0443\u0441\u0441\u043a\u0438\u0445 \u0431\u0443\u043a\u0432 \u0432 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0438 function isRus(txt) {   return txt.search(\/[^A-Za-z0-9\\\/.:_]+\/i) }  \/\/ \u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 function sort(){   \/\/ \u0414\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0441\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u044f\u0447\u0435\u0435\u043a \u043e\u0442 \u043b\u0435\u0432\u043e\u0439 \u0432\u0435\u0440\u0445\u043d\u0435\u0439 \u0434\u043e \u043f\u0440\u0430\u0432\u043e\u0439 \u043d\u0438\u0436\u043d\u0435\u0439   var tableRange = &quot;A2:G&quot;+numRows   var editedCell = sheet.getActiveCell()   var range = sheet.getRange(tableRange)   \/\/ \u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u043f\u043e \u043d\u043e\u043c\u0435\u0440\u0443 \u0441\u0442\u043e\u043b\u0431\u0446\u0430. \u041d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0441 0, \u0430 \u0441 1   range.sort([{      column : 4,     ascending: true   },{     column: 1,     ascending: true   },{     column: 2,     ascending: true   }]) }  \/\/ \u041f\u043e\u0438\u0441\u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0433\u0440\u0443\u043f\u043f function searchExists(t) {   for (var i = 1; i &lt; data.length; i++) {     if (t == data[i][2] || 'club'+t == data[i][2]){       return data[i][0]+data[i][1]     }   }   return false }  \/\/ \u041f\u043e\u0434\u0442\u044f\u0433\u0438\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0430\u0441\u0441\u043e\u0432\u043e \u0435\u0441\u043b\u0438 \u0438\u0445 \u043d\u0435\u0442 function addInfo(isBot = false) {   var arr = []   var j = 0   var part = 1000 \/\/ \u041a\u043e\u043b-\u0432\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u0443\u0434\u0435\u0442 \u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0431\u043b\u043e\u043a \u0442\u0435\u043a\u0441\u0442\u0430. \u0418\u0437-\u0437\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u0432 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0438 UrlFetchApp.fetch   arr[j] = new Array()   for (var i = 1; i &lt; data.length; i++) {     var txt = data[i][2].replace('https:\/\/vk.com\/','').replace('vk.com\/','').replace('^club','')     if (txt != '' &amp;&amp; data[i][0] == '' &amp;&amp; data[i][1] == '' &amp;&amp; data[i][3] == '' &amp;&amp; data[i][4] == '' &amp;&amp; data[i][5] == '' &amp;&amp; data[i][6] == ''){       arr[j].push(txt)       if (arr[j].toString().length &gt; part){         j++         arr[j] = new Array()       }     }   }   if (arr[0].length == 0){     if (isBot) return false     else{       SpreadsheetApp.getUi().alert('\u041d\u0435\u0442 \u0433\u0440\u0443\u043f\u043f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u044c')       return false     }   }   \/\/ \u0426\u0438\u043a\u043b \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0430\u043c   for (var t = 0; t &lt; Math.ceil(arr.toString().length\/part); t++) {     var html = UrlFetchApp.fetch('https:\/\/api.vk.com\/method\/groups.getById.json?group_ids='+arr[t].toString()+'&amp;fields=city,description&amp;access_token='+access_token+'&amp;v=5.107')     var json = JSON.parse(html).response     if(json){       for (var i = 0; i &lt; json.length; i++) {         var id = json[i].id         var link = json[i].screen_name         var name = json[i].name         var description = (json[i].description)?json[i].description:''         var city = (json[i].city)?json[i].city.title:''         var rus = (isRus(name) != -1)?&quot;A&quot;:&quot;B&quot;             \/\/ \u0421\u043a\u0440\u0438\u043f\u0442 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u043a arr         for (var j = 1; j &lt; data.length; j++) {           var nameCell = data[j][2].replace('https:\/\/vk.com\/','').replace('vk.com\/','').replace('^club','')           if (nameCell == link || nameCell == id){             var num = j+1             break           }         }         sheet.getRange(rus+num).setValue(name.replace('=',''))         sheet.getRange(&quot;C&quot;+num).setValue('=HYPERLINK(&quot;https:\/\/vk.com\/'+link+'&quot;;&quot;'+link+'&quot;)')         sheet.getRange(&quot;D&quot;+num).setValue(city)         sheet.getRange(&quot;E&quot;+num).setValue(searchGenre(description))         sheet.getRange(&quot;F&quot;+num).setValue(description)       }     }   }   sort()   return true }  \/\/ \u0412\u0442\u044f\u043d\u0443\u0442\u044c \u0433\u0440\u0443\u043f\u043f\u044b \u0438\u0437 \u0437\u0430\u043a\u043b\u0430\u0434\u043e\u043a \u0412\u041a function getVkFave(isBot = false) {   var idTag   var getTags = UrlFetchApp.fetch('https:\/\/api.vk.com\/method\/fave.getTags.json?access_token='+access_token+'&amp;v=5.107')   var res = JSON.parse(getTags).response   var iTag = res.items   for (var i = 0; i &lt; iTag.length; i++) {     if (iTag[i].name == faveTag) idTag = iTag[i].id   }      \/\/ \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435   if (!isBot){     var ui = SpreadsheetApp.getUi()     var resp = ui.alert('\u041f\u043e\u0441\u043b\u0435 \u0432\u0442\u044f\u0433\u0438\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u043a\u043b\u0430\u0434\u043e\u043a \u0441 \u0442\u0435\u0433\u043e\u043c &quot;'+faveTag+'&quot; \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u044b \u0438\u0437 \u0412\u041a. \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c?', ui.ButtonSet.YES_NO)   }   var inside = function (){     var getPages = UrlFetchApp.fetch('https:\/\/api.vk.com\/method\/fave.getPages.json?tag_id='+idTag+'&amp;fields=city,description&amp;access_token='+access_token+'&amp;v=5.107')     var iPage = JSON.parse(getPages).response.items     \/\/ \u0426\u0438\u043a\u043b \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u0439 \u0437\u0430\u043a\u043b\u0430\u0434\u043a\u0435. \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443, \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441 \u0412\u041a     for (var j = 0; j &lt; iPage.length; j++) {       var gr = iPage[j].group       addInTableFromArray(gr)       numRows++         UrlFetchApp.fetch('https:\/\/api.vk.com\/method\/fave.removePage?group_id='+gr.id+'&amp;access_token='+access_token+'&amp;v=5.107')         Utilities.sleep(1000) \/\/ \u043a\u043e\u0441\u0442\u044b\u043b\u044c     }     sort()   }   if (isBot) { \/\/ \u041a\u043e\u0441\u0442\u044b\u043b\u044c, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0431\u043e\u0442 \u0441\u0442\u043e\u043f\u0430\u0440\u0438\u0442\u0441\u044f \u043d\u0430 ui     inside()   }else if(resp == ui.Button.YES) {     inside()   } }  \/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 function addInTableFromArray(arr, linkIn) {   if (linkIn){     var link = linkIn   }else{     var link = arr.screen_name     if (searchExists(link) != false) return false   }   var name = arr.name \/\/ \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435   var description = (arr.description)?arr.description:'' \/\/\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435   var city = (arr.city)?arr.city.title:'' \/\/ \u0413\u043e\u0440\u043e\u0434   \/\/ \u0415\u0441\u043b\u0438 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435 \u043d\u0435\u0442 \u0440\u0443\u0441\u0441\u043a\u0438\u0445 \u0431\u0443\u043a\u0432, \u0437\u043d\u0430\u0447\u0438\u0442 \u043f\u0438\u0448\u0435\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0432 \u043a\u043e\u043b\u043e\u043d\u043a\u0443 &quot;English&quot;   var rus = (isRus(name) != -1)?&quot;A&quot;:&quot;B&quot;   \/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443   sheet.getRange(rus+numRows).setValue(name.replace('=',''))   sheet.getRange(&quot;C&quot;+numRows).setValue('=HYPERLINK(&quot;https:\/\/vk.com\/'+link+'&quot;;&quot;'+link+'&quot;)')   sheet.getRange(&quot;D&quot;+numRows).setValue(city)   sheet.getRange(&quot;E&quot;+numRows).setValue(searchGenre(description))   sheet.getRange(&quot;F&quot;+numRows).setValue(description) } \/\/ \u0410\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438. \u0415\u0434\u0438\u043d\u043e\u0440\u0430\u0437\u043e\u0432\u043e. function checkActualLink(){   for (var i = 1; i &lt; data.length; i++) {     try {       var num = i+1       UrlFetchApp.fetch(&quot;https:\/\/vk.com\/&quot;+data[i][2])       sheet.getRange('C'+num).setBackgroundColor('')     }catch(err) {       var num = i+1       sheet.getRange('C'+num).setBackgroundColor('red')     }   } } \/\/ \u0421\u0442\u0430\u0442\u0443\u0441 URL \u0432 \u0441\u0442\u0440\u043e\u043a\u0435. \u0417\u0430\u043f\u0443\u0441\u043a \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043a\u043e\u0434\u0430 \u0432 \u044f\u0447\u0435\u0439\u043a\u0443 function getStatusUrl(url){    var options = {      'muteHttpExceptions': true,      'followRedirects': false    }    var response = UrlFetchApp.fetch(url.trim(), options)    return response.getResponseCode() } \/\/\u041f\u043e\u0438\u0441\u043a \u043d\u043e\u043c\u0435\u0440\u0430 \u043b\u0438\u0441\u0442\u0430 \u043f\u043e \u0438\u043c\u0435\u043d\u0438 function getNumSheet(nameList){   var s = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(nameList)   if (s != null) {     return s.getIndex()-1   }else{     return false   } } \/\/\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u043f\u0435\u0446\u0441\u0438\u043c\u0432\u043e\u043b\u044b function escapeHtml(text) {   return text       .replace(\/&amp;\/g, &quot;&quot;)       .replace(\/&lt;\/g, &quot;&quot;)       .replace(\/&gt;\/g, &quot;&quot;); } \/\/ \u041c\u0435\u043d\u044e function onOpen() {   SpreadsheetApp.getUi()   .createMenu('\u041c\u0435\u043d\u044e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435')   .addItem('\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430', 'sort')   .addItem('\u0412\u0442\u044f\u043d\u0443\u0442\u044c \u0437\u0430\u043a\u043b\u0430\u0434\u043a\u0438 \u0438\u0437 \u0412\u041a', 'getVkFave')   .addItem('\u0414\u043e\u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u0435', 'addInfo')   .addToUi(); }  \/\/ \u041a\u0440\u0430\u0442\u043a\u0438\u0439 \u0432\u044b\u0437\u043e\u0432 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f function ll(t){   return Logger.log(t) } <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0411\u043e\u0442.gs<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"javascript\">var botApi = 'https:\/\/api.telegram.org\/bot1123123:AAA\/' \/\/ \u0422\u043e\u043a\u0435\u043d Telegram \u0431\u043e\u0442\u0430  \/* \u041a\u043e\u043c\u0430\u043d\u0434\u044b:  \/start - \u041d\u0430\u0447\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u0431\u043e\u0442\u0430  \/sort - \u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430  \/getvkfave - \u0412\u0442\u044f\u043d\u0443\u0442\u044c \u0437\u0430\u043a\u043b\u0430\u0434\u043a\u0438 \u0438\u0437 \u0412\u041a   \/addinfo - \u0414\u043e\u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u0435  \/getall - \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u0441\u0435 \u0433\u0440\u0443\u043f\u043f\u044b *\/ function doPost(e){   var inp = JSON.parse(e.postData.contents)   \/\/ \u041b\u043e\u0433\u0438   var sheet2 = ss.getSheets()[getNumSheet('\u041b\u043e\u0433\u0438')]   sheet2.getRange('A1').setValue(inp)      var inpTxt = inp.message.text   var chatId = inp.message.chat.id      var link = inpTxt.replace('https:\/\/vk.com\/','').replace('vk.com\/','').replace('^club','')   \/\/ \u041a\u043e\u043c\u0430\u043d\u0434\u044b \u0431\u043e\u0442\u0430   \/\/ start   if (inpTxt == '\/start' || inpTxt == '\u0412 \u043d\u0430\u0447\u0430\u043b\u043e'){     sendText(chatId, '\u0411\u043e\u0442 \u0437\u0430\u043d\u043e\u0441\u0438\u0442 \u0433\u0440\u0443\u043f\u043f\u044b \u0438\u0437 \u0412\u041a \u0432 Google \u0442\u0430\u0431\u043b\u0438\u0446\u0443.\\n'+                     '\/start - \u041d\u0430\u0447\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u0431\u043e\u0442\u0430\\n'+                     '\/sort - \u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430\\n'+                     '\/getvkfave - \u0412\u0442\u044f\u043d\u0443\u0442\u044c \u0437\u0430\u043a\u043b\u0430\u0434\u043a\u0438 \u0438\u0437 \u0412\u041a\\n'+                     '\/addinfo - \u0414\u043e\u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u0435\\n'+                     '\/getall - \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u0441\u0435 \u0433\u0440\u0443\u043f\u043f\u044b')     return true   }   \/\/ sort   if (inpTxt == '\/sort' || inpTxt == '\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430'){     sort()     sendText(chatId, '\u041e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e')     return true   }   \/\/ getvkfave   if (inpTxt == '\/getvkfave' || inpTxt == '\u0412\u0442\u044f\u043d\u0443\u0442\u044c \u0437\u0430\u043a\u043b\u0430\u0434\u043a\u0438 \u0438\u0437 \u0412\u041a'){     getVkFave(true)     sendText(chatId, '\u0412\u0442\u044f\u043d\u0443\u0442\u043e')     return true   }   \/\/ addinfo   if (inpTxt == '\/addinfo' || inpTxt == '\u0414\u043e\u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u0435'){     if (addInfo(true)) sendText(chatId, '\u0414\u043e\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e')     else sendText(chatId, '\u041d\u0435\u0442 \u0433\u0440\u0443\u043f\u043f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u044c')     return true   }   \/\/ getall   if (inpTxt == '\/getall' || inpTxt == '\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u0441\u0435 \u0433\u0440\u0443\u043f\u043f\u044b'){     var arr = [[],[],[],[],[],[],[],[],[],[],['\u0412 \u043d\u0430\u0447\u0430\u043b\u043e']] \/\/ TODO \u0434\u043e\u0434\u0435\u043b\u0430\u0442\u044c     var repeat = ''     var n = 0     var j = 0     for (var i = 1; i &lt; data.length; i++) {       if (j == 4){ \/\/ \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435         n++         j = 0       }       if (repeat != data[i][3]){         arr[n][j] = data[i][3]         if (data[i][3] == '') arr[n][j] = '---'         j++       }       repeat = data[i][3]     }     var key = JSON.stringify({keyboard:                                arr,                               resize_keyboard:true,                               one_time_keyboard:true                             });     sendText(chatId, '\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0433\u043e\u0440\u043e\u0434', key)     return true   }      \/\/ \u0413\u043e\u0440\u043e\u0434   if (isRus(link) != -1) {     var name = (inpTxt == '---')?'\u041d\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d':inpTxt     for (var j = 1; j &lt; data.length; j++) {       if (data[j][3] == inpTxt || inpTxt == '---') {         var str = '\u0413\u043e\u0440\u043e\u0434 '+name+'\\n\\n'         for (var i = 1; i &lt; data.length; i++) {           if ((data[j][3] == data[i][3]) || (data[i][3] == '' &amp;&amp; inpTxt == '---')) {             if (str.length &gt;= 4000) { \/\/ \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u043b-\u0432\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0438 Telegram \u0431\u043e\u0442\u0430               sendText(chatId, str)               str = ''             }             str = str + '&lt;a href=&quot;https:\/\/vk.com\/' + data[i][2] + '&quot;&gt;' + escapeHtml(data[i][0] + data[i][1]) + '&lt;\/a&gt; \\n'           }         }         if (str != '') sendText(chatId, str)         return true       }     }     sendText(chatId, inpTxt + ' - \u044d\u0442\u043e \u043d\u0435 \u043c\u0443\u0437.\u0433\u0440\u0443\u043f\u043f\u0430 \u0438 \u043d\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0431\u043e\u0442\u0430')     return true   }   \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0441\u0442\u044c   if (getStatusUrl('https:\/\/vk.com\/'+link) != 200 &amp;&amp; getStatusUrl('https:\/\/vk.com\/club'+link) != 200){     sendText(chatId, inpTxt+' - \u0431\u0438\u0442\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430')     return true   }      var name = searchExists(link)   if (name != false){     sendText(chatId, '\u0413\u0440\u0443\u043f\u043f\u0430 '+name+' \u0443\u0436\u0435 \u0435\u0441\u0442\u044c')     return true   }else{     var html = UrlFetchApp.fetch('https:\/\/api.vk.com\/method\/groups.getById.json?group_id='+link+'&amp;fields=city,description&amp;access_token='+access_token+'&amp;v=5.103')     var json = JSON.parse(html).response[0]     addInTableFromArray(json, link)     sort()     sendText(chatId, '\u0413\u0440\u0443\u043f\u043f\u0430 '+json.name+' \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430')     return true   } } \/\/\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u043e\u0431\u0448\u0435\u043d\u0438\u0435 \u0431\u043e\u0442\u0443 function sendText(chatId, text, key = ''){   var payload = {     'method': 'sendMessage',     'chat_id': String(chatId),     'text': text,     'parse_mode': 'HTML',     'reply_markup': key,     'disable_web_page_preview': true,     'one_time_keyboard':true   }        var data = {     &quot;method&quot;: &quot;post&quot;,     &quot;payload&quot;: payload   }   \/\/ \u0434\u043b\u044f \u0434\u0435\u0431\u0430\u0433\u0430 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u043c UrlFetchApp.fetch \u0438 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c ll(text)   UrlFetchApp.fetch(botApi, data) } <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u043d\u0438\u0436\u0435.<\/p>\n<p>  \u0416\u043c\u0451\u043c &quot;<i>\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u2014 \u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c, \u043a\u0430\u043a \u0432\u0435\u0431 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/i>&quot;.  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/zl\/kv\/1x\/zlkv1xdmgtujkydke7npwbz8ypu.png\"><\/div>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0430 \u0432\u0438\u0434\u0430 <a href=\"https:\/\/script.google.com\/macros\/s\/AAA\/exec\" rel=\"nofollow\">script.google.com\/macros\/s\/AAA\/exec<\/a>, \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u0432 \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u00ablink\u00bb, \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u0437\u0430\u043d\u0435\u0441\u0442\u0438 \u0433\u0440\u0443\u043f\u043f\u0443 \u0412\u041a \u0432 Google \u0422\u0430\u0431\u043b\u0438\u0446\u0443.<\/p>\n<h3>\u042e\u0437\u0435\u0440\u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435<\/h3>\n<p>  \u041f\u0435\u0440\u0432\u044b\u0439 \u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0437\u0430\u043d\u0435\u0441\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445!<\/p>\n<p>  \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0431\u0440\u0430\u0443\u0437\u0435\u0440 Google Chrome \u0438\u043b\u0438 Mozilla Firefox \u0438 \u0441\u0442\u0430\u0432\u0438\u043c \u043f\u043b\u0430\u0433\u0438\u043d \u044e\u0437\u0435\u0440\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 Tampermonkey.<br \/>  \u0421\u0441\u044b\u043b\u043a\u0438 \u0434\u043b\u044f <a href=\"https:\/\/chrome.google.com\/webstore\/detail\/tampermonkey\/dhdgffkkebhmkfjojejmpbldmpobfkfo\" rel=\"nofollow\">\u0425\u0440\u043e\u043c\u0430<\/a>, \u0434\u043b\u044f <a href=\"https:\/\/addons.mozilla.org\/en-US\/firefox\/addon\/tampermonkey\/\" rel=\"nofollow\">\u041c\u043e\u0437\u0438\u043b\u043b\u044b<\/a><\/p>\n<p>  \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f Greasemonkey, \u043d\u043e \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 <b>Tampermonkey<\/b> \u0438\u0437-\u0437\u0430 \u043a\u0440\u043e\u0441\u0441\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u043e\u0441\u0442\u0438.<br \/>  \u0423 \u043a\u043e\u0433\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442 \u0432\u043e\u043f\u0440\u043e\u0441\u044b, \u043f\u043e\u0447\u0435\u043c\u0443 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u044e\u0437\u0435\u0440\u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u0441 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u0430 <i>GM_<\/i>, \u0430 \u043d\u0435 <i>TM_<\/i> \u2014 \u0438\u0434\u0435\u044f \u043d\u0435 \u043c\u043e\u044f, \u0438\u0434\u0451\u043c \u0432 <a href=\"https:\/\/www.tampermonkey.net\/documentation.php\" rel=\"nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e<\/a>.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/9y\/wp\/s5\/9ywps5qxha6jnsvfepz62o6xpv4.png\"><\/div>\n<p>  \u0412\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442 <b>vkGroupToGS<\/b>, \u043d\u0430\u0436\u0430\u0432 \u043d\u0430 \u043f\u0435\u0440\u0432\u0443\u044e \u0432\u043a\u043b\u0430\u0434\u043a\u0443 \u0441 \u043f\u043b\u044e\u0441\u0438\u043a\u043e\u043c.<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">vkGroupToGS<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"javascript\">\/\/ ==UserScript== \/\/ @name         vkGroupToGS \/\/ @namespace    https:\/\/vk.com\/* \/\/ @version      0.1 \/\/ @author       You \/\/ @match        https:\/\/vk.com\/* \/\/ @grant        GM_xmlhttpRequest \/\/ ==\/UserScript==     var url_first = 'https:\/\/script.google.com\/macros\/s\/AAA\/exec'     var url_short = document.location.href.replace(&quot;https:\/\/vk.com\/&quot;, &quot;&quot;)     var d = document.createElement('div')     var head = document.querySelector('.left_menu_nav_wrap')     d.setAttribute('id', 'send_group')     d.style.display = 'inline-block'     d.style.position = 'relative'     d.style.fontSize = '50pt'     d.style.cursor = 'pointer'     d.innerHTML = '+'     head.parentNode.appendChild(d)     d.onclick = function() {     setTimeout(function() {         GM_xmlhttpRequest({             method: 'GET',             url: url_first + '?link=' + url_short,             headers: {                 'Accept': 'application\/atom+xml,application\/xml,text\/xml'             },             onload: function(x) {                 console.log(x.responseText)                 if (\/\u041e\u0448\u0438\u0431\u043a\u0430\/.test(x.responseText)) document.querySelector('#send_group').style.color = 'red'                 else document.querySelector('#send_group').style.color = 'green'             }         })     }, 0) }; <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u00ab\u0424\u0430\u0439\u043b \u2014 \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c\u00bb.  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/em\/zh\/pu\/emzhpukphz204ikcn66qobqnf6i.png\"><\/div>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c, \u043d\u0430\u0448 \u0441\u043a\u0440\u0438\u043f\u0442 \u0440\u0438\u0441\u0443\u0435\u0442 \u043f\u043b\u044e\u0441\u0438\u043a (\u043d\u0430 \u0447\u0442\u043e \u0445\u0432\u0430\u0442\u0438\u043b\u043e \u0444\u0430\u043d\u0442\u0430\u0437\u0438\u0438) \u0432 \u043b\u0435\u0432\u043e\u043c \u0431\u043b\u043e\u043a\u0435 <i>left_menu_nav_wrap<\/i>.  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/j1\/zf\/-j\/j1zf-jnibtq16f4152hqafj--ak.png\"><\/div>\n<p>  \u041f\u043e \u043d\u0430\u0436\u0430\u0442\u0438\u044e \u043d\u0430 \u043f\u043b\u044e\u0441\u0438\u043a \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f <b>GM_xmlhttpRequest<\/b> \u0438\u0437 <b>vkGroupToGS<\/b> \u0432 \u043d\u0430\u0448 \u0441\u043a\u0440\u0438\u043f\u0442 <b>\u041a\u043e\u0434.gs<\/b> \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 Google \u0422\u0430\u0431\u043b\u0438\u0446\u044b, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u0432\u044b\u0448\u0435 (url_first).<\/p>\n<p>  Tampermonkey \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442 \u0443 \u043d\u0430\u0441 \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u044d\u0442\u0438 2 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u043f\u0440\u0430\u0432\u0430\u043c\u0438, \u0436\u043c\u0451\u043c \u043b\u0438\u0431\u043e &quot;<i>\u0412\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044c<\/i>&quot; \u043b\u0438\u0431\u043e &quot;<i>\u0412\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044c \u0434\u043e\u043c\u0435\u043d\u0443<\/i>&quot; \u0434\u043b\u044f &quot;<i>script.google.com<\/i>&quot;. \u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u043f\u0440\u0438 \u043d\u0430\u0434\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f &quot;<i>script.googleusercontent.com<\/i>&quot;.  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ye\/k8\/5-\/yek85-3w5grvstyw4-fzvbnevsu.png\"><\/div>\n<p>  \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0440\u043e\u0441 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0443\u043b\u0435\u0442\u0438\u0442, \u043f\u0440\u0438\u0434\u0451\u0442 \u043a\u043e\u043b\u0431\u044d\u043a \u0438\u0437 <b>GM_xmlhttpRequest<\/b> \u0438 \u043e\u043a\u0440\u0430\u0441\u0438\u0442 \u043d\u0430\u0448\u0443 \u043a\u043d\u043e\u043f\u043a\u0443 \u0432 \u0437\u0435\u043b\u0451\u043d\u044b\u0439 \u0446\u0432\u0435\u0442 <font color=\"green\">\u271a<\/font> \u043f\u0440\u0438 \u0443\u0434\u0430\u0447\u043d\u043e\u043c \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043b\u0438\u0431\u043e \u0432 \u043a\u0440\u0430\u0441\u043d\u044b\u0439 <font color=\"red\">\u271a<\/font> \u0435\u0441\u043b\u0438 \u0432\u0435\u0440\u043d\u0443\u043b\u0430\u0441\u044c \u043e\u0448\u0438\u0431\u043a\u0430.<\/p>\n<p>  <b>\u041f\u043b\u044e\u0441 Tampermonkey<\/b> \u2014 \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0432 Google (\u0440\u0430\u043d\u044c\u0448\u0435 \u043d\u0435 \u0431\u044b\u043b\u043e) \u043f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0438\u0445 \u043f\u043b\u043e\u0434\u043e\u0432\u0438\u0442\u043e\u0441\u0442\u0438 \u0438 \u0441\u0432\u043e\u0435\u0433\u043e \u0432\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f.<\/p>\n<p>  <b>\u0412\u0435\u0440\u043d\u0451\u043c\u0441\u044f \u043a Google \u0422\u0430\u0431\u043b\u0438\u0446\u0435.<\/b><br \/>  \u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c, \u043a\u0430\u043a \u043d\u0430\u0447\u0430\u0442\u044c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u043d\u0430\u0448 <b>\u041a\u043e\u0434.gs<\/b> \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432 \u0412\u041a \u2014 <a href=\"https:\/\/vk.com\/dev\" rel=\"nofollow\">vk.com\/dev<\/a><\/p>\n<h3>\u0422\u043e\u043a\u0435\u043d \u0412\u041a<\/h3>\n<p>  <a href=\"https:\/\/vk.com\/dev\/access_token\" rel=\"nofollow\">\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430<\/a> <br \/>  <a href=\"https:\/\/vk.com\/dev\/api_requests\" rel=\"nofollow\">\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a API \u0412\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u0435<\/a><\/p>\n<p>  \u041f\u043e\u043a\u0430 \u043d\u0430\u0443\u0447\u0438\u043b\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0438\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u0434\u043e\u0431\u044b\u0432\u0430\u0442\u044c \u0442\u043e\u043a\u0435\u043d \u2014 \u0447\u0435\u0440\u0435\u0437 \u0441\u0430\u043c\u043e\u043f\u0438\u0441\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/p>\n<p>  \u0417\u0430\u0445\u043e\u0434\u0438\u043c <a href=\"https:\/\/vk.com\/editapp?act=create\" rel=\"nofollow\">\u0441\u044e\u0434\u0430<\/a>. <br \/>  \u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u2014 &quot;<i>Standalone-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/i>&quot;.<br \/>  \u041f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0432\u0441\u0451, \u0447\u0442\u043e \u043d\u0430\u043c \u043d\u0430\u0434\u043e \u2014 \u044d\u0442\u043e <i>ID \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/i> (\u043d\u044b\u043d\u0435 \u0441\u0435\u043c\u0438\u0437\u043d\u0430\u0447\u043d\u044b\u0439), \u043f\u0443\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 1234567.<br \/>  \u041d\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0442\u043e\u043a\u0435\u043d.<br \/>  \u041e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u0440\u043e \u0442\u043e\u043a\u0435\u043d \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0432 <a href=\"https:\/\/vk.com\/dev\/first_guide\" rel=\"nofollow\">\u0417\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u0435 \u0441 API \u0412\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u0435<\/a>.<br \/>  \u0415\u0441\u043b\u0438 \u043d\u0435 \u0445\u043e\u0442\u0438\u043c \u0447\u0438\u0442\u0430\u0442\u044c, \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c <a href=\"https:\/\/oauth.vk.com\/authorize?client_id=1234567&amp;scope=docs,offline&amp;redirect_uri=http%3A%2F%2Foauth.vk.com%2Fblank.html&amp;display=page&amp;response_type=token\" rel=\"nofollow\">\u0441\u0441\u044b\u043b\u043a\u0443<\/a>, \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u0432 <i>client_id<\/i> \u0441\u0432\u043e\u0439 <i>ID \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/i>.<\/p>\n<p>  \u041d\u0430\u0441 \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0442 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043a\u0443 \u0441 \u043d\u0430\u0434\u043f\u0438\u0441\u044c\u044e:  <\/p>\n<blockquote><p><i>\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043d\u0435 \u043a\u043e\u043f\u0438\u0440\u0443\u0439\u0442\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u043b\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0441\u0430\u0439\u0442\u043e\u0432. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0442\u0435\u0440\u044f\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0412\u0430\u0448\u0435\u043c\u0443 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0443.<\/i><\/p><\/blockquote>\n<p>  \u0418 \u044d\u0442\u043e \u0432\u0435\u0440\u043d\u043e, \u0431\u0443\u0434\u044c\u0442\u0435 \u043e\u0447\u0435\u043d\u044c \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u044b \u0441 \u0442\u043e\u043a\u0435\u043d\u043e\u043c!<\/p>\n<p>  \u0422\u043e\u043a\u0435\u043d \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0438\u0437 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u043e\u0441\u043b\u0435 <i>access_token<\/i>.<\/p>\n<p>  \u0421\u0440\u0430\u0437\u0443 \u043f\u043e\u0434\u0435\u043b\u044e\u0441\u044c, \u0447\u0442\u043e \u0441 \u044d\u0442\u0438\u043c \u0442\u043e\u043a\u0435\u043d\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0432\u0438\u0434\u0430 <a href=\"https:\/\/vk.com\/dev\/groups.search?params%5Bq%5D=%D0%BC%D1%83%D0%B7%D1%8B%D0%BA%D0%B0&amp;params%5Btype%5D=page&amp;params%5Bcountry_id%5D=1&amp;params%5Bcity_id%5D=1&amp;params%5Bfuture%5D=0&amp;params%5Bmarket%5D=0&amp;params%5Boffset%5D=0&amp;params%5Bcount%5D=10&amp;params%5Bv%5D=5.107\" rel=\"nofollow\">vk.com\/dev\/groups.search?params%5Bq%5D=%D0%BC%D1%83%D0%B7%D1%8B%D0%BA%D0%B0&amp;params%5Btype%5D=page&amp;params%5Bcountry_id%5D=1&amp;params%5Bcity_id%5D=1&amp;params%5Bfuture%5D=0&amp;params%5Bmarket%5D=0&amp;params%5Boffset%5D=0&amp;params%5Bcount%5D=10&amp;params%5Bv%5D=5.107<\/a>   <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/kz\/85\/az\/kz85azkcm2tl83wiy3telzotaj4.png\"><\/div>\n<p>  \u043c\u043e\u0436\u043d\u043e \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0432 \u0441\u0441\u044b\u043b\u043a\u0438 <a href=\"https:\/\/api.vk.com\/method\/groups.search?q=%D0%BC%D1%83%D0%B7%D1%8B%D0%BA%D0%B0&amp;type=page&amp;country_id=1&amp;city_id=1&amp;future=0&amp;market=0&amp;offset=0&amp;count=10&amp;access_token=1111111111111&amp;v=5.107\" rel=\"nofollow\">api.vk.com\/method\/groups.search?q=%D0%BC%D1%83%D0%B7%D1%8B%D0%BA%D0%B0&amp;type=page&amp;country_id=1&amp;city_id=1&amp;future=0&amp;market=0&amp;offset=0&amp;count=10&amp;access_token=1111111111111&amp;v=5.107<\/a> \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432 \u043b\u044e\u0431\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438.<br \/>  <a href=\"https:\/\/habrastorage.org\/webt\/64\/nb\/z5\/64nbz5mxmx78sp8ilbr-6bwvz0y.png\" rel=\"nofollow\"><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/64\/nb\/z5\/64nbz5mxmx78sp8ilbr-6bwvz0y.png\"><\/div>\n<p><\/a><\/p>\n<p>  \u042f \u043e\u0442\u043a\u0440\u044b\u043b \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u044f\u0449\u0438\u043a \u043f\u0430\u043d\u0434\u043e\u0440\u044b, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u044d\u0442\u043e \u0438 \u043d\u0435 \u043d\u043e\u0432\u043e\u0441\u0442\u044c, \u043d\u043e \u0442\u0430\u043a\u0438\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0433\u043e \u0438\u0437 \u0412\u041a, \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0443\u0439\u043c\u0443 \u0443\u0434\u043e\u0431\u043d\u044f\u0448\u0435\u043a.<\/p>\n<p>  \u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c\u0438 <a href=\"https:\/\/vk.com\/dev\/api_requests?f=3.%20%D0%9E%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%B8%20%D1%80%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%86%D0%B8%D0%B8\" rel=\"nofollow\">\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u043c\u0438<\/a>, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 999 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0432 \u043e\u0442\u0432\u0435\u0442\u0435 \u0438\u043b\u0438 20 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0438 \u0442.\u043f.<\/p>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u043a\u043e\u043c\u0443-\u043d\u0438\u0431\u0443\u0434\u044c \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043f\u043e\u0438\u0433\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u0445\u0440\u0430\u043d\u0438\u043c\u043a\u0430\u043c\u0438 \u2014 \u0432 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0432\u043a\u043b\u0430\u0434\u043a\u0430 &quot;<i>\u0425\u0440\u0430\u043d\u0438\u043c\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b<\/i>&quot;. <br \/>  \u0422\u0430\u043c \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0438 <a href=\"https:\/\/vk.com\/dev\/execute\" rel=\"nofollow\">\u043f\u0440\u0430\u0432\u0438\u043b\u0430<\/a> \u0432\u044b\u0442\u044f\u0433\u0438\u0432\u0430\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u0447\u0442\u043e\u0431 \u043d\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0446\u0438\u043a\u043b\u043e\u0432 \u0443 \u0441\u0435\u0431\u044f \u0432 \u043a\u043e\u0434\u0435.<\/p>\n<p>  <b>\u0421\u043b\u0435\u0434\u0438\u043c \u0437\u0430 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438!<\/b> <br \/>  \u0421 \u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438 \u043c\u043e\u0436\u0435\u0442 \u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u043e\u0432. \u041d\u044b\u043d\u0435 \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0434\u043b\u044f \u0432\u0435\u0440\u0441\u0438\u0438 <b>5.107<\/b>.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0442\u043e\u043a\u0435\u043d \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a\u2026<br \/>  <b>\u041a\u043e\u0434.gs<\/b><\/p>\n<p>  <b>doGet(e)<\/b> \u2014 \u041f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 get \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043e\u0442 \u0431\u043e\u0442\u0430, \u0412\u041a \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0441 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430.<br \/>  \u0412\u0445\u043e\u0434\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u0430\u0440\u0441\u044f\u0442\u0441\u044f, \u043a\u0430\u043a <i>e.parameters[&#8216;\u0412\u0425\u041e\u0414\u041d\u041e\u0419_\u041f\u0410\u0420\u0410\u041c\u0415\u0422\u0420&#8217;]<\/i><br \/>  \u041f\u0440\u0438\u043b\u0435\u0442\u0430\u0435\u0442 \u0441\u0441\u044b\u043b\u043a\u0430, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0435\u0441\u0442\u044c \u043b\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435. \u0415\u0441\u043b\u0438 \u043d\u0435\u0442, \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0447\u0435\u0440\u0435\u0437 <i>groups.getById<\/i>, \u043f\u0430\u0440\u0441\u0438\u043c, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c.<br \/>  ! \u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435! \u0421\u043a\u0440\u0438\u043f\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0439, \u0442\u0430\u043a \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0433\u043b\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u043f\u0440\u0438\u043b\u0435\u0442\u0430\u044e\u0449\u0438\u0435 \u0441\u0441\u044b\u043b\u043a\u0438, \u0442\u0430\u043a \u0447\u0442\u043e \u0431\u0443\u0434\u044c\u0442\u0435 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u044b \u0434\u0430\u0436\u0435 \u0432\u0432\u0435\u0434\u044f 123 \u043f\u0440\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u0430.<br \/>  <b>searchGenre<\/b> \u2014 \u0443\u043c\u043d\u044b\u0439 \u043f\u043e\u0438\u0441\u043a \u0441\u0442\u0438\u043b\u044f\/\u0436\u0430\u043d\u0440\u0430 \u0433\u0440\u0443\u043f\u043f\u044b, \u0438\u0437-\u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u044f \u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u043c\u0435\u0442\u043a\u0443 \u00ab\u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u00bb \u0432 \u0441\u0442\u0430\u0442\u044c\u0435. <br \/>  \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f.<br \/>  \u041f\u043e\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043f\u043e\u0438\u0441\u043a \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0446\u0435\u043f\u043e\u0447\u043a\u0438 \u0441\u043b\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u0441\u043b\u0435\u0448 \u0438\u043b\u0438 \u0434\u0435\u0444\u0438\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u043b\u043e\u0432 &quot;<i>\u0441\u0442\u0438\u043b\u044c \u0438\u043b\u0438 \u0436\u0430\u043d\u0440 \u0438\u043b\u0438 genre<\/i>&quot;.<br \/>  <b>isRus<\/b> \u2014 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043a\u0430, \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0430\u044f \u0440\u0443\u0441\u0441\u043a\u0438\u0435 \u0431\u0443\u043a\u0432\u044b.<br \/>  <b>sort<\/b> \u2014 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430. \u041f\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 1. \u0433\u043e\u0440\u043e\u0434, 2. \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435.<br \/>  <b>searchExists<\/b> \u2014 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u043e\u0438\u0441\u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0433\u0440\u0443\u043f\u043f \u0447\u0435\u0440\u0435\u0437 \u0446\u0438\u043a\u043b.<br \/>  <b>addInfo<\/b> \u2014 \u0441\u0434\u0435\u043b\u0430\u043b \u0441\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0441\u0435\u0431\u044f, \u043e\u0441\u0442\u0430\u0432\u0438\u043b \u0437\u0434\u0435\u0441\u044c, \u043a\u0430\u043a \u0431\u043e\u043d\u0443\u0441. \u041d\u0443\u0436\u0435\u043d \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0441\u044b\u043b\u043e\u043a, \u043d\u043e \u043d\u0435\u0442 \u043f\u043e \u043d\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0445. <br \/>  \u0412\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u0432 \u043a\u043e\u043b\u043e\u043d\u043a\u0443 \u00ab\u0421\u0441\u044b\u043b\u043a\u0430\u00bb, \u0436\u043c\u0451\u043c &quot;<i>\u0414\u043e\u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u0435<\/i>&quot; \u0432 \u0433\u043b\u0430\u0432\u043d\u043e\u043c \u043c\u0435\u043d\u044e \u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u0434\u043e\u0437\u0430\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0438\u0437 \u0412\u041a.<br \/>  \u0418\u0437-\u0437\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u043d\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0432 <i>UrlFetchApp.fetch<\/i> \u0438 \u0432 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0441\u044b\u043b\u043e\u043a, \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u043c\u044b\u0439 \u0432 \u0430\u0434\u0440\u0435\u0441\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0446\u0438\u043a\u043b \u043f\u043e 1000 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432.<br \/>  <b>getVkFave<\/b> \u2014 \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u0431\u043e\u043d\u0443\u0441, \u0432\u043e\u0437\u043d\u0438\u043a\u0448\u0438\u0439 \u0432 \u0433\u043e\u043b\u043e\u0432\u0435 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u044f \u0441\u0430\u043c \u0441\u0442\u0430\u043b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f.<br \/>  \u0421\u0443\u0442\u044c \u2014 \u0437\u0430\u0445\u043e\u0434\u0438\u043c \u0441 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0412\u041a, \u043d\u0430\u0442\u044b\u043a\u0430\u0435\u043c\u0441\u044f \u043d\u0430 \u0433\u0440\u0443\u043f\u043f\u0443, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0445\u043e\u0442\u0438\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0435\u0451 \u0432 \u0437\u0430\u043a\u043b\u0430\u0434\u043a\u0430\u0445 \u0441 \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u043c\u0435\u0442\u043a\u043e\u0439 &quot;<i>\u043c\u0443\u0437.\u0433\u0440\u0443\u043f\u043f\u044b<\/i>&quot; (\u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <i>faveTag<\/i>). <br \/>  \u041a\u0430\u043a \u043e\u043d\u0438 \u043d\u0430\u043a\u043e\u043f\u044f\u0442\u0441\u044f, \u0437\u0430\u0445\u043e\u0434\u0438\u043c \u0432 \u043d\u0430\u0448\u0443 Google \u0422\u0430\u0431\u043b\u0438\u0446\u0443, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u043c\u0435\u043d\u044e, \u0436\u043c\u0451\u043c &quot;<i>\u0412\u0442\u044f\u043d\u0443\u0442\u044c \u0437\u0430\u043a\u043b\u0430\u0434\u043a\u0438 \u0438\u0437 \u0412\u041a<\/i>&quot;. <br \/>  \u0421\u043a\u0440\u0438\u043f\u0442 \u0441 \u0442\u043e\u043a\u0435\u043d\u043e\u043c \u043b\u0435\u0437\u0435\u0442 \u0432 <a href=\"https:\/\/api.vk.com\/method\/fave.getTags\" rel=\"nofollow\">api.vk.com\/method\/fave.getTags<\/a>, \u043f\u0430\u0440\u0441\u0438\u0442, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443, \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0434\u0438\u0432 \u043e\u0431 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u0438\u0437 \u0412\u041a (\u0442\u0443\u0442 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u0435\u0439 \u0441 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c, <b>\u0432\u0441\u0451 \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0447\u0438\u0441\u0442\u0443\u044e \u0441 \u0437\u0430\u043a\u043b\u0430\u0434\u043e\u043a \u0441 \u044d\u0442\u0438\u043c \u0442\u0435\u0433\u043e\u043c<\/b>).<br \/>  <b>getStatusUrl<\/b> \u0438 <b>checkActualLink<\/b> \u2014 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442, \u0432\u044b\u043b\u0438\u0432\u0448\u0438\u0439\u0441\u044f \u0432 2 \u0441\u043a\u0440\u0438\u043f\u0442\u0430.<br \/>  \u0421\u0443\u0442\u044c \u2014 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0441\u0442\u044c \u0438 \u0434\u043e\u0441\u0442\u0443\u043f \u0434\u043e \u0441\u0441\u044b\u043b\u043e\u043a.<br \/>  \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0437\u0430 \u0433\u043e\u0434\u044b \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u044f \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0433\u0440\u0443\u043f\u043f \u044f \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u043f\u0430\u0431\u043b\u0438\u043a\u0438 \u0443\u0434\u0430\u043b\u044f\u044e\u0442 \u043b\u0438\u0431\u043e \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u044b\u0432\u0430\u044e\u0442.<br \/>  \u041a\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043c\u043e\u0435\u0439 \u0443\u0434\u043e\u0431\u043d\u044f\u0448\u043a\u043e\u0439, \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u043d\u0435\u043a\u043e\u0435 <i>TODO<\/i>, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438, \u043d\u043e \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0447\u0435\u0440\u0435\u0437 <i>groups.search<\/i> \u043f\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0432 \u0412\u041a.<br \/>  <b>checkActualLink<\/b> \u2014 \u0435\u0434\u0438\u043d\u043e\u0440\u0430\u0437\u043e\u0432\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0441\u0442\u044c, \u043e\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u044f \u0432 \u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0435.  <\/p>\n<ul>\n<li>\u041c\u0438\u043d\u0443\u0441 \u2014 \u043d\u0438\u0437\u043a\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c.<\/li>\n<li>\u041f\u043b\u044e\u0441 \u2014 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043c\u043e\u0436\u043d\u043e, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u0445\u043e\u0447\u0435\u0442\u0441\u044f.<\/li>\n<\/ul>\n<p>  <b>getStatusUrl<\/b> \u2014 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u044f\u0447\u0435\u0439\u043a\u0435 \u0447\u0435\u0440\u0435\u0437 \u0441\u043a\u0440\u0438\u043f\u0442 <\/p>\n<pre><code class=\"javascript\">=getStatusUrl(CONCAT(&quot;https:\/\/vk.com\/&quot;;C2))<\/code><\/pre>\n<p>  \u041e\u0441\u043d\u043e\u0432\u0443 \u0432\u0437\u044f\u043b <a href=\"https:\/\/bolshakof.ru\/lifehacks\/kak-proverit-indeksaciyu-url-v-google-tablicax\" rel=\"nofollow\">\u043e\u0442\u0441\u044e\u0434\u0430<\/a>.  <\/p>\n<ul>\n<li>\u041c\u0438\u043d\u0443\u0441 \u2014 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u044f\u0447\u0435\u0435\u043a \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b.<\/li>\n<li>\u041f\u043b\u044e\u0441 \u2014 \u043e\u0442\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u044f\u0447\u0435\u0435\u043a, \u0442\u043e \u0435\u0441\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0432 \u0440\u0430\u0437\u044b \u0432\u044b\u0448\u0435, \u0447\u0435\u043c \u0443 <b>checkActualLink<\/b>.<\/li>\n<\/ul>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u0438\u0434\u0443\u0442 \u0443\u0434\u043e\u0431\u043d\u044f\u0448\u043a\u0438 \u0434\u043b\u044f \u0433\u0443\u0433\u043b\u043e\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432:<br \/>  <b>addInTableFromArray<\/b> \u2014 \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443. \u041b\u0438\u0431\u043e \u0441 \u0446\u0438\u043a\u043b\u0430 \u043b\u0438\u0431\u043e \u0435\u0434\u0438\u043d\u043e\u0440\u0430\u0437\u043e\u0432\u043e.<br \/>  <b>getNumSheet<\/b> \u2014 \u041f\u043e\u0438\u0441\u043a \u043d\u043e\u043c\u0435\u0440\u0430 \u043b\u0438\u0441\u0442\u0430 \u043f\u043e \u0438\u043c\u0435\u043d\u0438. \u0427\u0435\u0441\u0442\u043d\u043e, \u043d\u0435 \u043d\u0430\u0448\u0451\u043b \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u043f\u0440\u043e\u0449\u0435, \u0447\u0435\u043c \u044d\u0442\u043e\u0442. \u041d\u0443\u0436\u0435\u043d \u0438\u0437-\u0437\u0430 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u043b\u0438\u0441\u0442\u043a\u043e\u0432 \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043d\u043e\u0432\u044b\u0445. \u041e\u0441\u043d\u043e\u0432\u0443 \u0432\u0437\u044f\u043b <a href=\"https:\/\/developers.google.com\/apps-script\/reference\/spreadsheet\/spreadsheet#getsheetbynamename\" rel=\"nofollow\">\u043e\u0442\u0441\u044e\u0434\u0430<\/a>.<br \/>  <b>escapeHtml<\/b> \u2014 \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u043f\u0435\u0446\u0441\u0438\u043c\u0432\u043e\u043b\u044b<br \/>  <b>ll<\/b> \u2014 \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0441\u0434\u0435\u043b\u0430\u043b <i>Logger.log<\/i> \u043a\u0440\u0430\u0442\u043a\u0438\u043c, \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u0435\u0442 \u0432\u0440\u0435\u043c\u044f, \u0441\u043e\u0432\u0435\u0442\u0443\u044e.<br \/>  <b>onOpen<\/b> \u2014 \u0412\u0441\u0435\u043c \u0437\u043d\u0430\u043a\u043e\u043c\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u043c\u0435\u043d\u044e \u0432 Google \u0422\u0430\u0431\u043b\u0438\u0446\u0435.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u043d\u0430\u0448 <b>\u041a\u043e\u0434.gs<\/b> \u043b\u043e\u0432\u0438\u0442 \u0441\u0441\u044b\u043b\u043a\u0438 \u0441 \u0412\u041a \u0447\u0435\u0440\u0435\u0437 Tampermonkey \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0433\u0440\u0443\u043f\u043f\u044b \u0432 Google \u0422\u0430\u0431\u043b\u0438\u0446\u0443.<\/p>\n<h3>\u0412\u041a\u041b\u042e\u0427\u0410\u0415\u041c \u041b\u0415\u041d\u042c<\/h3>\n<p>  <\/p>\n<ul>\n<li>\u041c\u044b \u0441\u0438\u0434\u0438\u043c \u0437\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u043c.<\/li>\n<li>\u041c\u044b \u0441\u0438\u0434\u0438\u043c \u0432 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0435.<\/li>\n<\/ul>\n<p>  \u0421 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430 \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0433\u0440\u0443\u043f\u043f\u044b \u0447\u0435\u0440\u0435\u0437 &quot;<i>\u043f\u043b\u044e\u0441\u0438\u043a<\/i>&quot; \u0432 \u0412\u041a \u0438 \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043a\u043b\u0430\u0434\u043a\u0438.<br \/>  \u0427\u0435\u0440\u0435\u0437 \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043a\u043b\u0430\u0434\u043a\u0438 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0412\u041a.<\/p>\n<p>  \u0420\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u0435\u0449\u0451 \u0434\u0432\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u0432\u043d\u0435\u0441\u0435\u043d\u0438\u044f \u0433\u0440\u0443\u043f\u043f.<\/p>\n<h3>USI<\/h3>\n<p>  \u042e\u0437\u0435\u0440\u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0432 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u043c \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435. <br \/>  \u041a\u043e\u043c\u0443-\u0442\u043e \u043e\u043d \u043f\u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u0440\u043e\u043c\u043e\u0434\u043d\u044b\u043c \u0438 \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u043c, \u043d\u043e \u043d\u0430\u0439\u0434\u0443\u0442\u0441\u044f \u0442\u0435 \u043b\u044e\u0434\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u043d\u0435\u0441\u0443\u0442 \u043f\u043b\u044e\u0441\u044b \u0438\u0437 \u043d\u0435\u0433\u043e.<br \/>  \u041f\u043e\u0438\u0441\u043a\u0430\u0432 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043d\u0430\u0448\u0451\u043b \u043f\u043e\u043a\u0430 \u0442\u043e\u043b\u044c\u043a\u043e <a href=\"https:\/\/addons.mozilla.org\/ru\/android\/addon\/userunified-script-injector\/\" rel=\"nofollow\">\u0442\u0430\u043a\u043e\u0439 \u043f\u043b\u0430\u0433\u0438\u043d<\/a>.<br \/>  \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 Firefox (\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u0432 android).<br \/>  \u041e\u0433\u0440\u043e\u043c\u043d\u044b\u0439 \u043f\u043b\u044e\u0441 \u2014 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442 Tampermonkey.<br \/>  \u0418\u0437-\u0437\u0430 \u043e\u0442\u043b\u0438\u0447\u0438\u0439 \u0432\u0451\u0440\u0441\u0442\u043a\u0438 \u043c\u0435\u0436\u0434\u0443 <i>vk.com<\/i> \u0438 <i>m.vk.com<\/i>, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u0437-\u0437\u0430 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u043e\u043a\u043d\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432 <i>m.vk.com<\/i> \u044f <u>\u043d\u0435 \u0441\u0442\u0430\u043b<\/u> \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043f\u043b\u044e\u0441\u0438\u043a, \u0430 \u0441\u0434\u0435\u043b\u0430\u043b \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 <b>VK_event_to_list_mvk<\/b>, \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u043f\u0440\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 \u043e\u043a\u043d\u0430 (\u0433\u043e\u0440\u0435\u0442\u044c \u043c\u043d\u0435 \u0432 \u0430\u0434\u0443 \u0437\u0430 <i>setTimeout<\/i>, \u0437\u043d\u0430\u044e).  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043e\u0434.gs<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"javascript\">\/\/ ==UserScript== \/\/ @name         VK_event_to_list_mvk \/\/ @namespace    https:\/\/m.vk.com\/* \/\/ @match        https:\/\/m.vk.com\/* \/\/ @grant    GM_xmlhttpRequest \/\/ ==\/UserScript== setTimeout(function() {     var url_first = 'https:\/\/script.google.com\/macros\/s\/111\/exec';     var url_short = document.location.href.replace(&quot;https:\/\/m.vk.com\/&quot;, &quot;&quot;);     GM_xmlhttpRequest({         method: 'GET',         url: url_first + '?link=' + url_short,         headers: {             'Accept': 'application\/atom+xml,application\/xml,text\/xml'         },         onload: function(x) {             alert(x.responseText);         }     }); }, 2000); <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<td><a href=\"https:\/\/habrastorage.org\/webt\/uk\/x3\/ed\/ukx3edytaakulssozlawwix_e-i.jpeg\" rel=\"nofollow\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/uk\/x3\/ed\/ukx3edytaakulssozlawwix_e-i.jpeg\"><\/a><\/td>\n<td><a href=\"https:\/\/habrastorage.org\/webt\/re\/7y\/fl\/re7yflb336er_3z4jnj4jhop9pi.jpeg\" rel=\"nofollow\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/re\/7y\/fl\/re7yflb336er_3z4jnj4jhop9pi.jpeg\"><\/a><\/td>\n<td><a href=\"https:\/\/habrastorage.org\/webt\/sb\/uz\/du\/sbuzdu-l-ji4uovmwghch-85kfy.jpeg\" rel=\"nofollow\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/sb\/uz\/du\/sbuzdu-l-ji4uovmwghch-85kfy.jpeg\"><\/a><\/td>\n<td><a href=\"https:\/\/habrastorage.org\/webt\/o8\/n5\/u8\/o8n5u8794binenepowlz8_hh3qi.jpeg\" rel=\"nofollow\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/o8\/n5\/u8\/o8n5u8794binenepowlz8_hh3qi.jpeg\"><\/a><\/td>\n<td><a href=\"https:\/\/habrastorage.org\/webt\/hw\/tr\/ng\/hwtrngrumjglnkqpvu3lzmbw1d4.jpeg\" rel=\"nofollow\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/hw\/tr\/ng\/hwtrngrumjglnkqpvu3lzmbw1d4.jpeg\"><\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/habrastorage.org\/webt\/hi\/ca\/_q\/hica_q7l2gvw5ij0zd437e5rjhu.jpeg\" rel=\"nofollow\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/hi\/ca\/_q\/hica_q7l2gvw5ij0zd437e5rjhu.jpeg\"><\/a><\/td>\n<td><a href=\"https:\/\/habrastorage.org\/webt\/xj\/17\/fq\/xj17fqjnlx58gy57ycngwq_2nyw.jpeg\" rel=\"nofollow\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/xj\/17\/fq\/xj17fqjnlx58gy57ycngwq_2nyw.jpeg\"><\/a><\/td>\n<td><a href=\"https:\/\/habrastorage.org\/webt\/e5\/fq\/pg\/e5fqpgvxuike9rjhxn_nygob64w.jpeg\" rel=\"nofollow\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/e5\/fq\/pg\/e5fqpgvxuike9rjhxn_nygob64w.jpeg\"><\/a><\/td>\n<td><a href=\"https:\/\/habrastorage.org\/webt\/vp\/cp\/uf\/vpcpufhriafofuxiavwsrsfw_zu.jpeg\" rel=\"nofollow\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/vp\/cp\/uf\/vpcpufhriafofuxiavwsrsfw_zu.jpeg\"><\/a><\/td>\n<td><a href=\"https:\/\/habrastorage.org\/webt\/4c\/ee\/19\/4cee19rvq8t8buo1wnqlueeritk.jpeg\" rel=\"nofollow\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/4c\/ee\/19\/4cee19rvq8t8buo1wnqlueeritk.jpeg\"><\/a><\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p>  <\/p>\n<h3>Telegram \u0411\u043e\u0442<\/h3>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0431\u043e\u0442\u0430 \u043f\u043e <a href=\"https:\/\/medium.com\/@bbsystemscorporation\/%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%86%D0%B8%D1%8F-%D0%BF%D0%BE-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B5-%D1%81-botfather-%D0%B1%D0%BE%D1%82%D0%BE%D0%BC-5c6f74d99a1a\" rel=\"nofollow\">\u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438<\/a>. <br \/>  \u041d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0442\u043e\u043a\u0435\u043d, \u043f\u0443\u0441\u0442\u044c \u043e\u043d \u0431\u0443\u0434\u0435\u0442 123123.<br \/>  \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0441\u043a\u0440\u0438\u043f\u0442 <b>\u0411\u043e\u0442.gs<\/b>, \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e <i>botApi<\/i> \u043d\u0430\u0448 123123, \u043e\u0431\u0440\u0430\u043c\u043b\u044f\u044f \u043a\u0430\u0432\u044b\u0447\u043a\u0430\u043c\u0438 \u0438 \u0441\u0441\u044b\u043b\u043a\u043e\u0439 <a href=\"https:\/\/api.telegram.org\/\" rel=\"nofollow\">api.telegram.org<\/a>.<br \/>  \u0414\u0430\u043b\u0435\u0435 \u043d\u0430\u0434\u043e \u0441\u0446\u0435\u043f\u0438\u0442\u044c \u043d\u0430\u0448\u0435\u0433\u043e \u0431\u043e\u0442\u0430 \u0441 Google \u0422\u0430\u0431\u043b\u0438\u0446\u0435\u0439. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 WebHook \u043c\u043e\u0436\u043d\u043e \u0432 <a href=\"https:\/\/habr.com\/ru\/post\/501276\/\">\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a>.<\/p>\n<p>  \u0427\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430\u0448 \u0431\u043e\u0442?<br \/>  \u0420\u0430\u0437\u043b\u043e\u0436\u0438\u043c \u043f\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c:  <\/p>\n<ul>\n<li>\/start \u2014 \u041d\u0430\u0447\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u0431\u043e\u0442\u0430<\/li>\n<li>\/sort \u2014 \u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430<\/li>\n<li>\/getvkfave \u2014 \u0412\u0442\u044f\u043d\u0443\u0442\u044c \u0437\u0430\u043a\u043b\u0430\u0434\u043a\u0438 \u0438\u0437 \u0412\u041a<\/li>\n<li>\/addinfo \u2014 \u0414\u043e\u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u0435<\/li>\n<li>\/getall \u2014 \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u0441\u0435 \u0433\u0440\u0443\u043f\u043f\u044b<\/li>\n<\/ul>\n<p>  \u0412\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u0431\u043e\u0442\u0430, \u0442\u0443\u0434\u0430 \u043c\u044b \u0432\u0441\u0442\u0430\u0432\u0438\u043c \u043f\u0440\u043e\u0441\u0442\u043e tutorial \u0441 \u043e\u043f\u0438\u0441\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u043d\u0430 \u0432\u0430\u0448\u0435 \u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u0435.<br \/>  \u0422\u0440\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438\u0437 \u0433\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u043c\u0435\u043d\u044e \u043d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439.<br \/>  \u0418 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0431\u043e\u043d\u0443\u0441 \u2014 <b>\/getall<\/b>, \u043e \u043d\u0451\u043c \u043d\u0438\u0436\u0435.<\/p>\n<p>  \u041a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 (\u0432 \u0441\u0442\u0440\u043e\u043a\u0435 \u0432\u0432\u043e\u0434\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043b\u0435\u0448) \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0442\u043e\u043c \u0436\u0435 @BotFather \u0447\u0435\u0440\u0435\u0437 \/setcommands.<br \/>  \u0424\u043e\u0440\u043c\u0430\u0442 \u2014 \u0441\u0442\u0440\u043e\u043a\u0438 \u0447\u0435\u0440\u0435\u0437 \u0442\u0438\u0440\u0435:  <\/p>\n<pre><code class=\"xml\">start - \u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u0432 \u043d\u0430\u0447\u0430\u043b\u043e sort - \u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 getvkfave - \u0412\u0442\u044f\u043d\u0443\u0442\u044c \u0437\u0430\u043a\u043b\u0430\u0434\u043a\u0438 \u0438\u0437 \u0412\u041a addinfo - \u0414\u043e\u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u0435 getall - \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u0441\u0435 \u0433\u0440\u0443\u043f\u043f\u044b<\/code><\/pre>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/h9\/rd\/vm\/h9rdvmirpvb1lqizi05zf9f1668.png\"><\/div>\n<p>  <b>\u0411\u043e\u0442.gs<\/b><br \/>  <b>doPost<\/b> \u2014 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0442 \u0431\u043e\u0442\u0430.<br \/>  \u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043a\u0430\u043a \u043f\u044b\u0442\u043b\u0438\u0432\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442, \u044f \u0441\u0440\u0430\u0437\u0443 \u043d\u0430\u0447\u0430\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u043e\u0433\u0438. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0435\u0441\u0442\u044c \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u043f\u0440\u043e\u0449\u0435, \u043d\u043e \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u043b \u043d\u043e\u0432\u044b\u0439 \u043b\u0438\u0441\u0442, \u043d\u0430\u0437\u0432\u0430\u043b \u0435\u0433\u043e \u00ab\u041b\u043e\u0433\u0438\u00bb \u0438 \u043b\u043e\u0432\u043b\u044e \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u044f\u0447\u0435\u0439\u043a\u0443 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b.<br \/>  \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043c\u044b \u0440\u0430\u0441\u043f\u0430\u0440\u0441\u0438\u043b\u0438 \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 <i>JSON.parse(e.postData.contents)<\/i>, \u0441\u0440\u0430\u0437\u0443 \u043f\u0438\u0448\u0435\u043c \u0432 \u043b\u043e\u0433\u0438.<br \/>  \u0414\u0430\u043b\u0435\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c, \u043a\u0430\u043a\u0430\u044f \u0438\u0437 \u043a\u043e\u043c\u0430\u043d\u0434 \u043d\u0430\u043c \u043f\u0440\u0438\u0448\u043b\u0430.<br \/>  \u0415\u0441\u043b\u0438 \u043d\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0430, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043d\u0430 \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0441\u0442\u044c, \u0442\u043e \u0435\u0441\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u0438 \u0433\u0440\u0443\u043f\u043f\u0430 \u0432 \u0412\u041a.<br \/>  <b>sendText<\/b> \u2014 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0431\u043e\u0442\u0443 (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e parse_mode = HTML), <a href=\"https:\/\/core.telegram.org\/bots\/api#message\" rel=\"nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/a>.<\/p>\n<p>  <b>\/getall<\/b> \u2014 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e.<br \/>  \u041f\u0443\u0441\u0442\u044c \u0432\u0430\u0441 \u043d\u0435 \u043f\u0443\u0433\u0430\u0435\u0442 \u043c\u043e\u0451 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0438\u0437 <\/p>\n<pre><code class=\"javascript\">[[],[],[],[],[],[],[],[],[],[],['\u0412 \u043d\u0430\u0447\u0430\u043b\u043e']]<\/code><\/pre>\n<p>  \u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0434\u043b\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u0447\u0435\u043a \u0433\u043e\u0440\u043e\u0434\u0430\u043c\u0438, \u043f\u043e\u043a\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u043c\u0441\u044f 8-10 \u0441\u0442\u0440\u043e\u0447\u043a\u0430\u043c\u0438 \u043f\u043e 4 \u0433\u043e\u0440\u043e\u0434\u0430 (\u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f j = 4). <br \/>  \u0415\u0441\u043b\u0438 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u0433\u0440\u0443\u043f\u043f\u0430 \u0431\u0435\u0437 \u0433\u043e\u0440\u043e\u0434\u0430, \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c &#8212;.<br \/>  \u041f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0433\u043e\u0440\u043e\u0434 \u0438 \u043b\u043e\u0432\u0438\u043c \u0440\u0443\u0441\u0441\u043a\u0438\u0435 \u0431\u0443\u043a\u0432\u044b \u0432 <b>\u0411\u043e\u0442.gs<\/b>.<br \/>  \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0441\u044b\u043b\u043e\u043a, \u043d\u0438\u0447\u0435\u0433\u043e \u0431\u043e\u043b\u0435\u0435.  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/i8\/w-\/su\/i8w-susuojbx8tce-_cs8ov3r5u.png\"><\/div>\n<p>  \u041f\u043e\u043c\u043d\u0438\u043c, \u0447\u0442\u043e \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0431\u043e\u0442\u0430 \u0447\u0435\u0440\u0435\u0437 \u0430\u0434\u0440\u0435\u0441\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0447\u0435\u0440\u0435\u0437 <a href=\"https:\/\/chrome.google.com\/webstore\/detail\/hotspot-shield-free-vpn-p\/nlbejmccbhkncgokjcmghpfloaajcffj\" rel=\"nofollow\">Hotspot Shield Free VPN Proxy \u2014 Unlimited VPN<\/a> (\u0434\u043b\u044f Google Chrome).<\/p>\n<p>  \u0412\u043e\u0442 \u043c\u044b \u0438 \u0438\u0437\u0443\u0447\u0438\u043b\u0438 \u0442\u0440\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0432\u043d\u0435\u0441\u0435\u043d\u0438\u044f \u0432 \u043d\u0430\u0448\u0443 \u0442\u0430\u0431\u043b\u0438\u0446\u0443:  <\/p>\n<ul>\n<li>\u042e\u0437\u0435\u0440\u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435<\/li>\n<li>\u042e\u0437\u0435\u0440\u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0432 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u043c \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 (USI)<\/li>\n<li>Telegram \u0411\u043e\u0442<\/li>\n<\/ul>\n<h3>\u0427\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u0438 \u043f\u043e\u043c\u043d\u0438\u0442\u044c?<\/h3>\n<p>  <b>\u041f\u0440\u0435\u0444\u0438\u043a\u0441 club \u0432 \u0441\u0441\u044b\u043b\u043a\u0430\u0445 \u0412\u041a<\/b><br \/>  \u0412 \u0433\u0440\u0443\u043f\u043f\u0430\u0445 \u0412\u041a \u0435\u0441\u0442\u044c 2 \u0442\u0438\u043f\u0430 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430.<\/p>\n<ol>\n<li>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c \u0441 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u043c\u0438 \u043f\u043e\u0434\u0447\u0451\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u044f\u043c\u0438 \u0438 \u0434\u0435\u0444\u0438\u0441\u0430\u043c\u0438.<\/li>\n<li>ID<\/li>\n<\/ol>\n<p>  \u041f\u0440\u0438\u0447\u0451\u043c \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043c\u043e\u0433\u0443\u0442 \u0438 \u0442\u0430\u043a \u0438 \u0442\u0430\u043a.<br \/>  \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e.<br \/>  \u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0433\u0440\u0443\u043f\u043f\u0430, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c <a href=\"https:\/\/vk.com\/4soulsband\" rel=\"nofollow\">vk.com\/4soulsband<\/a>, \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c 4soulsband \u0432 <i>group_ids<\/i> \u0432 <a href=\"https:\/\/vk.com\/dev\/groups.getById\" rel=\"nofollow\">vk.com\/dev\/groups.getById<\/a>, \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 <i>ID<\/i>. \u0418 \u0435\u0441\u043b\u0438 \u043c\u044b \u043f\u0435\u0440\u0435\u0434 \u043d\u0438\u043c \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c <i>club<\/i>, \u0432\u0443\u0430\u043b\u044f, \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u043c \u043d\u0430 \u0442\u0443 \u0436\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 <a href=\"https:\/\/vk.com\/club68130764\" rel=\"nofollow\">vk.com\/club68130764<\/a>.<\/p>\n<p>  <b>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0433\u0440\u0443\u043f\u043f \u0432 \u0412\u041a \u0434\u043e 5000<\/b><br \/>  \u041a\u0430\u0436\u0435\u0442\u0441\u044f \u0441\u043c\u0435\u0448\u043d\u044b\u043c, \u043d\u043e \u043c\u043d\u0435 \u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u043b\u043e.<\/p>\n<p>  <b>\u041c\u043e\u044f \u0431\u043e\u043b\u044c \u0441 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0412\u041a<\/b><br \/>  \u041a\u0430\u044e\u0441\u044c, \u043f\u043e\u043a\u0430 \u043d\u0435 \u0441\u043c\u043e\u0433 \u043f\u043e\u0431\u0435\u0434\u0438\u0442\u044c \u043e\u0442\u043b\u043e\u0432 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u043c\u0438 \u0432 \u0412\u041a \u0434\u043b\u044f \u0441\u0431\u0440\u043e\u0441\u0430 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043f\u043b\u044e\u0441\u0438\u043a\u0430 \u0432 Tampermonkey. <i>TODO<\/i><\/p>\n<p>  <b>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Google \u0422\u0430\u0431\u043b\u0438\u0446, \u043a\u0430\u043a \u0411\u0414<\/b>  <\/p>\n<ul>\n<li>\u041f\u043b\u044e\u0441 \u2014 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c<\/li>\n<li>\u041c\u0438\u043d\u0443\u0441 \u2014 \u043a\u043e\u0433\u0434\u0430 \u043a\u043e\u043f\u0438\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435 5000 \u0441\u0442\u0440\u043e\u043a, \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 &quot;<i>\u0411\u0414<\/i>&quot; <u>\u0437\u0430\u043c\u0435\u0434\u043b\u044f\u0435\u0442\u0441\u044f<\/u>. \u0422\u0430\u043a \u0447\u0442\u043e \u0434\u043b\u044f \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043b\u0443\u0447\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0421\u0423\u0411\u0414.<\/li>\n<\/ul>\n<p>  <b>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0433\u043e\u0440\u043e\u0434\u0430 \u0433\u0440\u0443\u043f\u043f\u044b<\/b><br \/>  \u0410\u0434\u0440\u0435\u0441 \u0433\u0440\u0443\u043f\u043f\u044b \u0432 \u0412\u041a \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u0443\u0442 <a href=\"https:\/\/vk.com\/dev\/groups.getAddresses\" rel=\"nofollow\">vk.com\/dev\/groups.getAddresses<\/a>, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a\u0442\u043e \u0437\u0430\u0445\u043e\u0447\u0435\u0442 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043f\u043e\u0438\u0441\u043a \u0433\u043e\u0440\u043e\u0434\u0430 \u0434\u043b\u044f \u0433\u0440\u0443\u043f\u043f\u044b, \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e.<\/p>\n<h3>\u0418\u0442\u043e\u0433<\/h3>\n<p>  \u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c:  <\/p>\n<ol>\n<li>Google \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<\/li>\n<li>\u0417\u043d\u0430\u043d\u0438\u044f \u043f\u043e VK API. \u0422\u043e \u0435\u0441\u0442\u044c \u0432\u044b \u0443\u0436\u0435 \u0432 \u043a\u0443\u0440\u0441\u0435, \u0447\u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0433\u0440\u0443\u043f\u043f\u0430\u043c\u0438.<\/li>\n<li>Telegram \u0411\u043e\u0442 \u0441 \u0411\u0414, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0438 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c.<\/li>\n<\/ol>\n<p>  \u041c\u043e\u044f \u0446\u0435\u043b\u044c \u043d\u0435 \u043a\u0438\u0447\u0438\u0442\u044c\u0441\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439 \u0438\u0433\u0440\u0443\u0448\u043a\u043e\u0439, \u043c\u043e\u044f \u0446\u0435\u043b\u044c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u043e\u0432\u0438\u0447\u043a\u0430\u043c (\u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e) \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0439 \u043f\u043b\u0430\u0441\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 API`\u0448\u0435\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442\u044c \u0436\u0438\u0437\u043d\u044c \u0432 \u0442\u043e\u0439 \u0438\u043b\u0438 \u0438\u043d\u043e\u0439 \u0441\u0442\u0435\u043f\u0435\u043d\u0438, \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438\u0441\u044c \u0441 \u0436\u0435\u043b\u0435\u0437\u043d\u043e\u0439 \u0437\u0435\u043c\u043b\u0438 \u0432 \u00ab\u043e\u0431\u043b\u0430\u043a\u0430\u00bb, \u0442\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u0442\u044c.<br \/>  \u0414\u0430\u043d\u043d\u044b\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0433\u043e\u0442\u043e\u0432, \u043a\u0430\u043a \u0438 \u043e\u0442\u043a\u0440\u044b\u0442 \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0439.<br \/>  \u0423\u0434\u0430\u0447\u0438 \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438 \u043f\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u0438 \u043d\u043e\u0432\u044b\u0445 \u0437\u043d\u0430\u043d\u0438\u0439.<\/p>\n<h3>\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/h3>\n<p>  <a href=\"https:\/\/developers.google.com\/apps-script\/reference\/spreadsheet\/\" rel=\"nofollow\">Google Apps Script \u2014 Spreadsheet Service<\/a><br \/>  <a href=\"https:\/\/core.telegram.org\/bots\/api\" rel=\"nofollow\">Telegram Bot API<\/a><br \/>  <a href=\"https:\/\/vk.com\/dev\" rel=\"nofollow\">VK API<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/post\/129343\/\">\u0423\u0447\u0438\u043c\u0441\u044f \u043f\u0438\u0441\u0430\u0442\u044c userscript&#8217;\u044b<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/post\/129454\/\">Userscripts. \u0423\u0433\u043b\u0443\u0431\u043b\u044f\u0435\u043c\u0441\u044f<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/post\/141686\/\">\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0441\u0430\u0439\u0442\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Google Docs<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/post\/326220\/\">\u0411\u0430\u043b\u043e\u0432\u0441\u0442\u0432\u043e. \u041f\u0438\u0448\u0435\u043c Telegram \u0431\u043e\u0442\u0430 \u043d\u0430 Google script<\/a><br \/>  <a href=\"https:\/\/codd-wd.ru\/shpargalka-dopolneniya-dlya-google-tablic-spreadsheets-i-ispolzovanie-google-apps-script\/\" rel=\"nofollow\">[\u041f\u0440\u0438\u043c\u0435\u0440\u044b, Google Apps Script] \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0439\/\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0434\u043b\u044f Google \u0422\u0430\u0431\u043b\u0438\u0446 (spreadsheets)<\/a><br \/>  <a href=\"https:\/\/medium.com\/@the.benhawy\/how-to-use-google-spreadsheets-to-check-for-broken-links-1bb0b35c8525\" rel=\"nofollow\">How to use google spreadsheets to check for broken links<\/a><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/504664\/\"> https:\/\/habr.com\/ru\/post\/504664\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/504664\/\">\u041a\u0430\u043a \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0433\u0440\u0443\u043f\u043f \u0432 Google \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u0445 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0441 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c?<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/hr\/jq\/sf\/hrjqsf-vqmo0b_zofufnv6lt3ls.png\"><\/div>\n<p>  <b>\u0414\u0430\u043d\u043e<\/b>: \u0410\u043a\u043a\u0430\u0443\u043d\u0442\u044b \u0432 Google, VK, Telegram.<br \/>  <b>\u0417\u0430\u0434\u0430\u0447\u0430<\/b>: \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0433\u0440\u0443\u043f\u043f \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0443\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u043f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<br \/>  <b>\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b<\/b>: Google Apps Script (GAS), VK API, Tampermonkey, Telegram Bot API.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-304584","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/304584","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=304584"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/304584\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=304584"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=304584"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=304584"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}