рдЖрдЬ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ: рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рдЖрдк Google Apps рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдФрд░ рдХрд╣рд╛рдВ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡реАрдкреАрдПрдирдмреБрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд╛ рд╕реНрд╡рдЪрд╛рд▓рди рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреЛ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рд╣реИред рдорд┐рдХрд░реЛрдЯрд┐рдХ рджреНрд╡рд╛рд░рд╛ рдиреАрдбреЛ-рдХреБрд░реНрд▓ред рдПрдХ рдЬрдЧрд╣ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо, рддрд╛рдХрд┐ рджреВрд╕рд░реЗ рдореЗрдВ рди рд╣реЛ, рдЖрддреНрдо-рдкрд░реНрдпрд╡реЗрдХреНрд╖рдг рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рднрд╛рдЧ 1. рд╢реАрд░реНрд╖рдХрд╣реАрди
рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рд╡реАрдкреАрдПрдирдмреБрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореБрдлреНрдд рд╡реАрдкреАрдПрди рдПрдХреНрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдорд┐рдХрд░реЛрдЯрд┐рдХ рд░рд╛рдЙрдЯрд░ рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд╛рд╕рд╡рд░реНрдб рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ "
рд╡реАрдкреАрдПрдирдмреБрдХ рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рдУрд╕реАрдЖрд░ " рдПрдХ рдиреЛрдЯ рд▓рд┐рдЦрд╛ рдерд╛ред рдХрд╣рд╛рдиреА рдХреА рд╢реБрд░реБрдЖрдд рд╣реИред
рддрдм рд╕реЗ, рдмрд╣реБрдд рд╕рд╛рд░рд╛ рдкрд╛рдиреА рдмрд╣ рдЧрдпрд╛ рд╣реИ, рд░реВрд╕ рдореЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╡реАрдкреАрдПрдирдмреБрдХ рд╕рд╛рдЗрдЯ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡реАрдкреАрдПрди рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рд╕реНрд╡рдпрдВ рдирд╣реАрдВ, рдЬреЛ рдХрд┐ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реИрдВред рдХрд┐рд╕реА рдкрд╛рда рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкрд╛рд╕рд╡рд░реНрдб рдХреА PNG рдЫрд╡рд┐ рдХреЛ рдбреАрдХреЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PHP рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрдм рдЙрд╕ рд╕рд░реНрд╡рд░ рдкрд░ рд▓реЙрдиреНрдЪ рд╣реЛрдиреЗ рдкрд░ рднреА рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдХрд╛ рдЯреНрд░реИрдлрд╝рд┐рдХ рдмреНрд▓реЙрдХрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рд╣реЛрдХрд░ рдирд╣реАрдВ рдЧреБрдЬрд░рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ, Google Apps Script (GAS)
рд╕реЗрд╡рд╛ script.google.com рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдПрдХ рдмрд╛рд╣рд░реА рд╡реЗрдм рд╕рд░реНрд╡рд░ рдкрд░ PHP рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЗрд╕реЗ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдпрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рд╡реЗрдм рдРрдк (рд╡реЗрдм тАЛтАЛрдПрдкреНрд▓рд┐рдХреЗрд╢рди) рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА GAS рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ред рдореИрдВ рдирд┐рд╖реНрдкрд╛рджрди рдиреАрддрд┐ рдФрд░ рдЬреАрдПрдПрд╕ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЛ рдирд╣реАрдВ рд╕рдордЭрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЬреЛ рдХреБрдЫ рднреА рдХрд┐рдпрд╛ рд╡рд╣ рдПрдХ рдирд┐рд╢реБрд▓реНрдХ Google рдЦрд╛рддреЗ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрднреА рддрдХ рдкреИрд╕реЗ рдирд╣реАрдВ рдорд╛рдВрдЧрддрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ Google Apps рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рд▓рдХреНрд╖реНрдп рдирд╣реАрдВ рд╣реИред GAS рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╛рд╖рд╛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЖрдк рддреГрддреАрдп-рдкрдХреНрд╖ рдЬреЗрдПрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдПрдХ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдмрд┐рдирд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд╕рднреА рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдЬреАрдПрдПрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдХреНрд╖рдорддрд╛рдПрдВ рдореЗрд░реЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рдереАрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдирд╛ рдкрдбрд╝рд╛ рдФрд░ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреА рдкрдбрд╝реАред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдкреАрдПрдирдЬреА рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд╡реЗрдм рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡реАрдкреАрдПрдирдмреБрдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рдЫрд╡рд┐ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рд╡рд╛рд▓реА рдереА (рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдкрд╛рд╕рд╡рд░реНрдб рдкреАрдПрдирдЬреА рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛) рдФрд░ рдЗрд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рджреЗ рдЬрд┐рд╕рдиреЗ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ред рддрд╛рд▓рд╛ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдкрд╛рдиреЗ рдХрд╛ рдРрд╕рд╛ рддрд░реАрдХрд╛ред рдпрд╣рд╛рдВ рдЬреАрдПрдПрд╕ рдХрд╛ рдкрд╣рд▓рд╛ рдкреНрд░рддрд┐рдмрдВрдз рдорд┐рд▓рд╛ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ MIME рдЫрд╡рд┐ / png рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдкрд╛рда рдкреНрд░рд╛рд░реВрдк, JSON, TEXT, XML, рдЖрджрд┐ред рд▓реЗрдХрд┐рди рдЗрд╕ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЬрд╛рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдерд╛ред рдЖрдк PNG рдХреЛ рдмреЗрд╕ 64 рдкрд░ рдПрдиреНрдХреЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рд╕рдорд╛рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
techslides.com/image-proxy-with-google-app-scripts ред рдореИрдВрдиреЗ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ред рдореБрдЭреЗ рдХреЗрд╡рд▓ рдПрдХ рдЫрд╡рд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдФрд░ рдХреЗрд╡рд▓ рдмреЗрд╕ 64 рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдирд╛ рдерд╛ред рдкрд░рд┐рдгрд╛рдо рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ doGet рдлрд╝рдВрдХреНрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИ - рдПрдХ GET рдЕрдиреБрд░реЛрдз рд╣реИрдВрдбрд▓рд░ рдЬреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рджреЗрддрд╛ рд╣реИред
function doGet() { var response = UrlFetchApp.fetch('https://www.vpnbook.com/password.php'); var b64 = Utilities.base64Encode(response.getContent());
рдЙрджрд╛рд╣рд░рдг рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЖрдЙрдЯрдкреБрдЯ:
iVBORw0KGgoAAAANSUhEUgAAAGQAAAANAQMAAABl11mFAAAABlBMVEX29vZMTExY89ZbAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAVUlEQVQImWNgIBrwSzCw/2ZgOADhSc5gYJCG8wxQedLdCcYFNXcgPHOZsxuSZxx7BuFZzsjdcJi34TBU5Y3cjc3IvM3McJ7kjNxtzDwwffwSIB7UTACt/h52C5DFqQAAAABJRU5ErkJggg==
рдЗрд╕рдХреЗ рдмрд╛рдж PHP рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрддреА рд╣реИ, рдЬрд┐рд╕реЗ рд░рд┐рд╕реЛрд░реНрд╕ рд▓реЙрдХрд┐рдВрдЧ рд╡рд╛рд▓реЗ рдЬрд╝реЛрди рдХреЗ рдЕрдВрджрд░ рд╕рд░реНрд╡рд░ рдкрд░ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдХреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рдорд╛рди рд╣реИ, рдХреЗрд╡рд▓ CURL рдХреЙрд▓ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдмрджрд▓рд╛рд╡ рдХреЛ рдЫреЛрдбрд╝рдХрд░ред рдЖрдкрдХреЛ CURL рдХреЛ HTTP / 1.1 302 рдкрд░ рдЬрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрдм рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, GAS, рд╡реЗрдм рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрддреЗ рд╕реЗ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рдЕрд╕реНрдерд╛рдпреА рдкрддреЗ рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
рдФрд░ рдмреЗрд╕64 рдбрд┐рдХреЛрдбрд┐рдВрдЧ:
$imgOCR = imagecreatefromstring(base64_decode($output));
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реА рдпрд╣ PHP рд╕реНрдХреНрд░рд┐рдкреНрдЯ PNG рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдбрд┐рдХреЛрдб рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЯреЗрдХреНрд╕реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЗ рд░реВрдк рдореЗрдВ рдорд┐рдХрд░реЛрдЯрд┐рдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд▓реЗрдЦ рдореЗрдВред рд░рд╛рдЙрдЯрд░ рдХреЛ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдо рдорд┐рдХрд░реЛрдЯрд┐рдХ рдХреЗ рд╕рд╛рдордиреЗ 2 рдордзреНрдпрд╡рд░реНрддреА рд╕реЗрд╡рд╛рдУрдВ рдХреА рдРрд╕реА рдХрд╛рд░реНрдп рдпреЛрдЬрдирд╛ рдереАред
рднрд╛рдЧ 2. рдЬреАрдПрдПрд╕ рдкрд░ рдзрдХреНрдХрд╛ред PHP рдбрд┐рдХреЛрдбрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдПрдВ
рдЬреАрдПрдПрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рджреМрд░рд╛рди, PHP рдореЗрдВ рдкрд╛рд╕рд╡рд░реНрдб рдбрд┐рдХреЛрдбрд░ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛, рдЗрд╕реЗ рдЬреАрдПрдПрд╕ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ред рдФрд░ рдпрд╣рд╛рдВ рдПрдХ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛: Google рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ PNG рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ PNG рдХреЛ рдмрд╛рдЗрдЯ рд╕рд░рдгреА рдореЗрдВ рдмрджрд▓ рд╕рдХрддреА рд╣реИред рдЫрд╡рд┐ рднрд╛рдЧреЛрдВ рдФрд░ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рд╣реЗрд░рдлреЗрд░ рдХрд╛ рдХреЛрдИ рд╕рд╡рд╛рд▓ рд╣реА рдирд╣реАрдВ рдерд╛ред рдореИрдВ рдкреАрдПрдирдЬреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЗрдПрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдЬреАрдердм рдкрд░ рдЪрдврд╝ рдЧрдпрд╛, рдореИрдВрдиреЗ рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рдХреБрдЫ рдкрд╛рдпрд╛: рдкреАрдПрдирдЬреА, рдЬреЗрдкреАрдПрдирдЬреА, рдЬреЗрдПрд╕рдЬреА, рдкреАрдПрдирдЬреАред рдХреБрдЫ рдкреАрдПрдирдЬреА рдкрд┐рдХреНрд╕реЗрд▓ (рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдЫрд╡рд┐) рдХреА 1-рдмрд┐рдЯ рд░рдВрдЧ рдХреА рдЧрд╣рд░рд╛рдИ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЙрдиреНрд╣реЛрдВрдиреЗ рд╡рд┐рднрд┐рдиреНрди рдЬрд╝рд╛рд▓рд┐рдм рд╕рдВрдкреАрдбрд╝рди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЦреАрдВрдЪ рд▓рд┐рдпрд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рд╕рдм рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдмреЛрдЭрд┐рд▓ рд▓рдЧ рд░рд╣рд╛ рдерд╛, рдФрд░ рдореИрдВрдиреЗ рдЕрдкрдиреЗ PNG рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрджрд┐рдо рдХрдирд╡рд░реНрдЯрд░ рдкрд░ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ XY рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рдкрд┐рдХреНрд╕рд▓ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд╕рдорд╛рд░реЛрд╣ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд┐рдЯрдореИрдк рдХреЗ рд▓рд┐рдПред рдлрд┐рд░ рдкреАрдПрдирдЬреА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдХ рдкреВрд░реНрдг рд╡рд┐рд╕рд░реНрдЬрди рдЖрдпрд╛: рд╣реЗрдХреНрд╕ рд╕рдВрдкрд╛рджрдХ, рд░реАрдбрд┐рдВрдЧ рдорд╛рдирдХреЛрдВ, рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд╡рд┐рд╡рд░рдг рдХреЗ рдвреЗрд░ред рдФрд░ рдЕрдВрдд рдореЗрдВ, рдореИрдВ IDAT рдлрд╝рд╛рдЗрд▓ рдХреЗ PNG рд╕реЗрдХреНрд╢рди рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛, рдЬрд┐рд╕рдореЗрдВ zlib рднрд░рд╛ рд╣реБрдЖ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рдкрд┐рдХреНрд╕реЗрд▓ рдХреА рдПрдХ рд╕рд░рдгреА рдереАред
рдпрд╣ zibib unpacking рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рд░реЛрд╣ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ GAS рдореЗрдВ рдирд╣реАрдВ рдерд╛ред рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ, рдЙрдирдХреЗ рдкрд╛рд╕ gzip / ungzip рдФрд░ zip / unzip рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ zlib рдирд╣реАрдВ рд╣реИред рдЧрдЬрд╝рд┐рдк (рдкреАрдПрдирдЬреА рдкреНрд░рд╛рд░реВрдк рдХреЗ рдмрд╛рдж рд╡рд┐рд╕рд░реНрдЬрди рдХрд╛ рджреВрд╕рд░рд╛ рд╕реНрддрд░) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪрд╛ рдХрд┐ рдЖрдИрдбреАрдПрдЯреА рдЕрдиреБрднрд╛рдЧ рд╕реЗ рдПрдХ рдЧрдЬрд╝рд┐рдк рдЕрд░реНрдз-рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд░реВрдк рдореЗрдВ "рд╕рд╛рдЗрдХрд┐рд▓" рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд▓рд╛рд▓реА рд╕рдВрдкреАрдбрд╝рди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╣рд╛рдВ рдФрд░ рд╡рд╣рд╛рдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рд╡реИрдз gzip рд╕рдВрдЧреНрд░рд╣ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдирдкреИрдХреНрдб рдбреЗрдЯрд╛ рдХреА рд▓рдВрдмрд╛рдИ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдЕрдирдкреИрдХ рдХрд┐рдП рдмрд┐рдирд╛ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ :) рдФрд░ рдЧрд▓рдд рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рд╛рде, GAS рдиреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рджреВрд╖рд┐рдд рдорд╛рдирд╛ред рдЕрдВрдд рдореЗрдВ, рдореИрдВрдиреЗ рдЧрд┐рддреБрдм рдХреА рдУрд░ рд░реБрдЦ рдХрд┐рдпрд╛ рдФрд░ рдПрдХ рдорд╣рд╛рди рд╕рдорд╛рдзрд╛рди рдкрд╛рдпрд╛: Google Apps рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП zlib.js (https://github.com/hinimub/zlib.js/blob/develop/README.en.md)ред рдЬрд┐рд╕реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреБрдВрдЬреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреАрдПрдПрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдлрд┐рд░ рдкрд╣реЗрд▓реА рдХреЛ рд╕рдореЗрдЯрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдкрд┐рдХреНрд╕реЗрд▓ рд╕рд░рдгреА рдХреЗ рд╡рд┐рдШрдЯрди рдФрд░ XY рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдбреАрдХреЛрдбрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ PHP рд╕реЗ GAS рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛ред
рдЕрд▓рдЧ рд╕реЗ рд╕рдВрднрд╡ рдкрд╛рд╕рд╡рд░реНрдб рд╡рд░реНрдгреЛрдВ рдХреЗ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдХреА рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рдХреА рдЧрдгрдирд╛ рдХреАред рдпрд╣ рдПрдХ рдмрд╛рд░ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо (рд▓реИрдмрд╡реНрдпреВ, рд╣реИрд▓реЛ, рд╕рд╣рдХрд░реНрдорд┐рдпреЛрдВ) рдореЗрдВ рдХреА рдереАред рдЫрд╡рд┐ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдг рдХреЛ 8 рдмрд┐рдЯреНрд╕ (рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреЗ рдмрд┐рдирд╛) x 10 рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред 1 рдмрд╛рдЗрдЯ рдПрдХ рд╡рд░реНрдг рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЗ 8 рдкрд┐рдХреНрд╕реЗрд▓ рдХреЛ рдПрдирдХреЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдЖрдк рдкреВрд░реА рд╕рдВрдЦреНрдпрд╛ (рдмрд╛рдЗрдЯ) рдФрд░ рдкреВрд░реЗ рд╡рд░реНрдг рдХреЛ 10 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЗ рд░реВрдк рдореЗрдВ рдкрд┐рдХреНрд╕реЗрд▓ рдХреА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╡рд░реНрдг рдкреНрд░рддрд┐ 10 рд╣реЗрдХреНрд╕ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдЕрдЧрд▓рд╛, GAS рдбрд┐рдХреЛрдбрд░ рдЕрдкрдиреЗ PHP рдкреВрд░реНрд╡рдЬ рдХреЛ рджреЛрд╣рд░рд╛рддрд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдо рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ рдЬреАрдПрдПрд╕ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИред function doGet() {
'рдП', 'FCC6C3C6FCC6C3C3C6FC': 'рдмреА', '3E63C1C0C0C0C0C1633E': 'рд╕реА', 'FCC6C3C3C3C3C3C3C6FC': 'рдбреА', 'FEC0C0C0FCC0C0C0C0FE': 'рдИ', 'FFC0C0C0FCC0C0C0C0C0': 'рдПрдл function doGet() {
',' C3C3C3C3FFC3C3C3C3C3 ':' рдПрдЪ ',' 7E18181818181818187E ':' рдореИрдВ ',' 1E666666466C38 ':' рдЬреЗ ',' C3C6CCD8F0F0D8CCC6C3 ':' рдХрд╢реНрдореАрд░ ',' C0C0C0C0C0C0C0C0C0FE ':' рдПрд▓ ', function doGet() {
'C3E3F3F3DBDBCFC7C7C3': 'рдПрди', '3C66C3C3C3C3C3C3663C': 'рд╣реЗ', 'FEC3C3C3FEC0C0C0C0C0': 'рдкреА', '3C66C3C3C3C3DBCF663D': 'рдХреНрдпреВ', 'FEC3C3C3FEF8CCC6C3C3': 'рдЖрд░', '7EC3C0C07E333C37E function doGet() {
000B6DBDBDBDBDBDB ':' рдореА ',' 000DCE6C3C3C3C3C3 ':' рдПрди ',' 0003C66C3C3C3663C ':' рдУ ',' 000DCE6C3C3C3E6DC ':' рдкреА ',' 0003B67C3C3C3673B ':' рдХреНрдпреВ ',' 000DE736060606060 ' function doGet() {
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗрд╡рд▓ GET рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИред рд╡реЗрдм рдРрдк рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП GET рдЕрдиреБрд░реЛрдз рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рддреБрд░рдВрдд рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкрд╛рд╕рд╡рд░реНрдб рд╣реЛрдЧрд╛ред
рднрд╛рдЧ 3. рдорд┐рдХрд░реЛрдЯрд┐рдХ рдФрд░ рдореВрд╡ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ 302
рддреЛ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ рдмрд╛рд╣рд░реА рд╡реЗрдм рдРрдк рд╕рд░реНрд╡рд░ рдкрд░ рдЪрд▓рддреА рд╣реИ, рдЬреЛ рддрд╛рд▓реЗ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ рдФрд░ рдПрдХ рд╕рд╛рджреЗ рдкрд╛рда рдкрд╛рд╕рд╡рд░реНрдб рджреЗрддрд╛ рд╣реИред рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░рд╛рдЙрдЯрд░рдУрдПрд╕ рдорд┐рдХрд░реЛрдЯрд┐рдХ рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдлрд┐рд░ рдПрдХ рдФрд░ рдЖрд╢реНрдЪрд░реНрдп рдиреЗ рдореЗрд░рд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд┐рдпрд╛ред рдЕрдиреБрд░реЛрдз рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ (рдЕрд╕рд▓реА рдкрддреЗ рдмрджрд▓ рдЧрдП) "302 рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдЪрд▓реЗ рдЧрдП" рд░рд┐рдЯрд░реНрди рдорд┐рд▓рддрд╛ рд╣реИред
[admin@MikroTik] /environment> :put ([/tool fetch url="https://script.google.com/macros/s/A.....A/exec" http-method=get output=user as-value]->"data") failure: closing connection: <302 Moved Temporarily "https://script.googleusercontent.com/macros/echo?user_content_key=....."> 173.194.222.138:443 (4) [admin@MikroTik] /environment>
рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛ред рд╡реЗрдм рдРрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рдЧрд╛рддрд╛рд░ рдЬреНрдЮрд╛рдд URL рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░, Google рдПрдХ рдЕрд╕реНрдерд╛рдпреА URL рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди PHP cURL рдХреЗ рд╡рд┐рдкрд░реАрдд, RouterOS рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреИрд╕реЗ рдЬрд╛рдирд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдпрд╣ рд╡рд┐рдлрд▓рддрд╛ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди forum.mikrotik.com рддреБрд░рдВрдд рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдерд╛ред рдЖрдк рд╕рд╛рдВрддреНрд╡рдирд╛ рд╕реЗ рдлрд╛рдЗрд▓ рдореЗрдВ рдорд╛рдирдХ рд▓рд┐рдВрдЪ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдХрд╛рд░реНрдп рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд▓рдкреЗрдЯрдХрд░: рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдХреЗ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирдП рдкрддреЗ рдХреЗ рд╕рд╛рде рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд URL рдФрд░ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬреЛ рдиреАрдЪреЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдпрд╣рд╛рдВ GAS рд╡реЗрдм рдРрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рдХрд░реЛрдЯрд┐рдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдкреВрд░рд╛ рдкрд╛рда рд╣реИ рднрд╛рдЧ 4. рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЬреАрдПрдПрд╕ рдкреНрд░реЙрдХреНрд╕реА
рдореИрдВрдиреЗ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕реЗрд╡рд╛ рдХреЛ рдорд┐рдХрд░реЛрдЯрд┐рдХ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рдЕрдЧрд▓реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдЗрд╕ рднрд╛рдЧ рдХреЛ рд╕рдорд░реНрдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдпрд╣рд╛рдВ рдЬреАрдПрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рдЕрдХрд╛рджрдорд┐рдХ рд╣рд┐рдд рд╣реЛрдЧрд╛ рдпрджрд┐ рдпрд╣ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕реЗрд╡рд╛ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдиреЗ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдерд╛, рдЬрд┐рд╕рдореЗрдВ api.telegram.org рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреЙрдЯ рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рд╡рд┐рдЪрд╛рд░ PNG рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рджреЛрд╣рд░рд╛рддрд╛ рд╣реИред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, GAS рд╡реЗрдм рдРрдк рдХреЛ Mikrtotik рд╕реЗ api.telegram.org рдкрд░ рдкреНрд░реЙрдХреНрд╕реА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдПрдХ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ manzoorwanijk, WPTelegram Google Script
gist.github.com/manzoorwanijk/ee9ed032caedf2bb0c83dea73cc9a28e рд╕реЗ рддреИрдпрд╛рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ
рд▓реА ред рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдИ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдПрдкреАрдЖрдИ рддрд░реАрдХреЛрдВ (рд▓реЗрдХрд┐рди рд╕рднреА рдирд╣реАрдВ) рдХреЛ рдкреНрд░реЙрдХреНрд╕реА рдХрд░ рд╕рдХрддреА рд╣реИред рдЖрд░реНрдЧреНрд╕ рдореЗрдВ, рдЖрдк рдЕрдиреБрд░реЛрдз рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ JSON рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
{"chat_id":"123","text":"HelloWorld"}
ред рд▓реЗрдХрд┐рди рд░рд╛рдЙрдЯрд░рдУрдПрд╕ рдорд┐рдХрд╛рд░реЛрдЯреАрдХ рд╕реЗ рдкрд╛рда рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рдореЗрд░реЗ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬрдЯрд┐рд▓ рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рд░рд▓ рдХрд░ рджрд┐рдпрд╛ред рдЕрдВрддрддрдГ, рдЖрдк рдЖрдо рддреМрд░ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдПрдкреАрдЖрдИ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдкреНрд░реЙрдХреНрд╕реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡реЗрдм рдРрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ SendMessage рдкрджреНрдзрддрд┐ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред SendMessage рдкрджреНрдзрддрд┐ рдХреЗ рдирд╛рдо рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдХреЗ рдЗрд╕реЗ рдФрд░ рднреА рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ requestHandler рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╢рд░реАрд░ рдореЗрдВ bot_token рдФрд░ chat_idред
function doGet(e) { if(typeof e !== 'undefined'){ return ContentService.createTextOutput(requestHandler(e)); } } function doPost(e) { if(typeof e !== 'undefined'){ return ContentService.createTextOutput(requestHandler(e)); } } function requestHandler(e){ if (typeof e.parameter.bot_token === 'undefined'){ return 'Error! Bot token not provided'; } else if (typeof e.parameter.method === 'undefined') { return 'Error! Method name not provided'; } else if (typeof e.parameter.chat_id === 'undefined') { return 'Error! Chat id not provide'; } else if (typeof e.parameter.text === 'undefined') { return 'Error! Text not provide'; } if (e.parameter.method === 'sendMessage') { var data = { "method": "post", "muteHttpExceptions": true, payload : 'chat_id=' + e.parameter.chat_id + '&text=' + e.parameter.text } return UrlFetchApp.fetch('https://api.telegram.org/bot' + e.parameter.bot_token + '/' + e.parameter.method, data).getContentText(); } }
рд╡реЗрдм рдРрдк рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП GET рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдХ рдЕрдиреБрд░реЛрдз рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
https://script.google.com/macros/s/A.....A/exec?bot_token=3.....3&method=sendMessage&chat_id=2.....3&text=testtext123
рдпрд╛ рд░реВрдЯрд░ рд░реВрдЯрд░ рдкреЛрд╕реНрдЯ рдЕрдиреБрд░реЛрдз рдореЗрдВ:
:do { /tool fetch url=("https://script.google.com/macros/s/A.....A/exec") keep-result=no http-method=post http-data=("bot_token=3.....3&method=sendMessage&chat_id=2.....3&text=testtext123") } on-error={ }
рдЕрдиреБрд░реЛрдз рдбреВ-рдСрди-рдПрд░рд░ рдореЗрдВ рд▓рд┐рдкрдЯреЗ рд╣реБрдП рд╣реИ, рдХреНрдпреЛрдВрдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реА рдХреЙрд▓ рдПрдХ рдЕрдкрд╡рд╛рдж "рдореВрд╡реНрдб рдЯреЗрдореНрдкреЛрд░рд░реА 302" рдлреЗрдВрдХ рджреЗрдЧреА рдФрд░ рдСрди-рдПрд░рд░ рд╣реИрдВрдбрд▓рд░ рдХреЗ рдмрд┐рдирд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧреАред рдлреЙрд░рд╡рд░реНрдб рдХрд┐рдП рдмрд┐рдирд╛ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдПрдкреАрдЖрдИ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП JSON рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рджреВрд╕рд░реА рдХреЙрд▓ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред
рднрд╛рдЧ 5. рдЕрдВрддрд┐рдо
рдореИрдВ рдЕрдиреНрдп рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде Google Apps рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЬрдВрдХреНрд╢рди рдкрд░ рдЕрдкрдиреЗ рдЕрд╕рд▓реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд╛рдпрд╛ред рдЖрдк рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреЗ рд╕рд╛рде рдЖ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреАрдПрдПрд╕ рдореЗрдВ рдПрдХ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯ рд▓рд┐рдЦреЗрдВ, рдЬреЛ рд╡реАрдкреАрдПрдирдмреБрдХ (рдХреИрд╢ рд╕рд░реНрд╡рд┐рд╕) рдкрд░ рд▓реЛрдб рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╢рд┐рдВрдЧ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕рд╛рде рд╡реАрдкреАрдПрдирдмреБрдХ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдЬрд╡рд╛рдм рджреЗрдЧрд╛, рдФрд░ рдпрд╣ рд╕рдм рдПрдХ рдЬреАрдПрдПрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╣реЛрдЧрд╛ред рдЖрдк GAS рдкрд░ рдПрдХ рд▓реЙрдЧрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдпрд╛ рдмреИрдХрдЕрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдорд┐рдХрд╛рд░реЛрдЯреАрдХ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ Google рдбреЙрдХреНрд╕ рдФрд░ Google рд╢реАрдЯ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдмрд╣реБрдд рдХреБрдЫред