|   |   | 
| 
 | https://clck.ru/ помогите получить ссылку | ☑ | ||
|---|---|---|---|---|
| 0
    
        Tarlich 21.08.23✎ 16:23 | 
        да вроде и инструкция есть :
 https://clck.ru/ У сервиса есть REST-образный интерфейс, позволяющий автоматизировать работу. Для того, чтобы им воспользоваться, достаточно передать переменную url в POST или GET запросе по адресу https://clck.ru/-- Пример: >>> import requests >>> endpoint = 'https://clck.ru/--' >>> url = ('https://ya.ru', '?utm_source=sender') >>> response = requests.get( endpoint, params = {'url': url} ) >>> response.text 'https://clck.ru/344HLX' ронимаю что соединение , запрос ну туплю ...... помогите -)) | |||
| 1
    
        Garykom гуру 21.08.23✎ 16:26 | 
        покажи что уже наваял с Новый HTTPСоединение     | |||
| 2
    
        Tarlich 21.08.23✎ 16:29 | 
        // Подключаемся к сайту.
 // Соединение = Новый HTTPСоединение("https://clck.ru/"); // // // Получаем текст корневой страницы через GET-запрос. // Запрос = Новый HTTPЗапрос("/", ДлиннаяСслока); // // Если бы нужна была другая страница, мы бы указали, // // например, "/about" или "/news". // // Результат = Соединение.Получить(Запрос); Соединение = Новый HTTPСоединение("clck.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL()); Запрос = Новый HTTPЗапрос("/"+ДлиннаяСслока); Результат = Соединение.Получить(Запрос); Сообщить(Результат.КодСостояния); Сообщить(Результат.ПолучитьТелоКакСтроку()); | |||
| 3
    
        Tarlich 21.08.23✎ 16:31 | 
        <!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="manifest" href="https://yastatic.net/s3/clicker/1.15.0/manifest.json"/><link rel="icon" href="https://yastatic.net/s3/clicker/_/favicon.ico" type="image/x-icon" sizes="16x16"/><link rel="preload" href="//yastatic.net/islands/_/PyVcRbwHetz0gOVWLonWH7Od8zM.woff2" as="font" type="font/woff2" crossorigin/><link rel="preload" href="//yastatic.net/islands/_/7_GKBdKFbUPzKlghJRv55xgz0FQ.woff2" as="font" type="font/woff2" crossorigin/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="description" content="Простой способ сокращать ссылки и делиться ими"/><title>Яндекс Кликер — Сокращение ссылок</title><script defer="defer" src="https://yastatic.net/s3/clicker/_/error-pages/runtime.ru.js"></script><script defer="defer" src="https://yastatic.net/s3/clicker/_/error-pages/critical-css.ru.js"></script><script defer="defer" src="https://yastatic.net/s3/clicker/_/error-pages/4.ru.js"></script><script defer="defer" src="https://yastatic.net/s3/clicker/_/error-pages/579.ru.js"></script><script defer="defer" src="https://yastatic.net/s3/clicker/_/error-pages/not-found-error-page.ru.js"></script><link href="https://yastatic.net/s3/clicker/_/error-pages/critical-css.css" rel="stylesheet"/><link href="https://yastatic.net/s3/clicker/_/error-pages/not-found-error-page.css" rel="stylesheet"/></head><body><noscript>Для работы сервиса необходимо включить JavaScript в настройках браузера</noscript><div id="root"></div></body></html>     | |||
| 4
    
        Garykom гуру 21.08.23✎ 16:36 | 
        (2)+ Запрос.Заголовки.Вставить("url", адрес)     | |||
| 5
    
        Tarlich 21.08.23✎ 16:37 | 
        Запрос.Заголовки.Вставить("url", ДлиннаяСслока)     | |||
| 6
    
        Garykom гуру 21.08.23✎ 16:38 | 
        (5) проверил что точно заголовки а не параметры внутри тела?     | |||
| 7
    
        Tarlich 21.08.23✎ 16:41 | 
        Соединение = Новый HTTPСоединение("clck.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL());
 Запрос = Новый HTTPЗапрос("?utm_source=sender"); Запрос.Заголовки.Вставить("url", ДлиннаяСслока); Результат = Соединение.Получить(Запрос); Сообщить(Результат.ПолучитьТелоКакСтроку()); | |||
| 8
    
        MMB 21.08.23✎ 16:41 | 
        Если напишешь так (вместо "/" - "/?url=") То в Результат.ПолучитьТелоКакСтроку() искомая ссылка будет присутствовать, осталось ее оттуда достать
 ДлиннаяСтрока = "https://clck.ru/ помогите получить ссылку Соединение = Новый HTTPСоединение("clck.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL()); Запрос = Новый HTTPЗапрос("/?url="+ДлиннаяСтрока); Результат = Соединение.Получить(Запрос); Сообщить(Результат.КодСостояния); Сообщить(Результат.ПолучитьТелоКакСтроку()); ... "shortenedUrl":"https://clck.ru/35PT3A" ... | |||
| 9
    
        Tarlich 21.08.23✎ 16:48 | 
        <!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="manifest" href="https://yastatic.net/s3/clicker/1.15.0/manifest.json"/><link rel="icon" href="https://yastatic.net/s3/clicker/_/favicon.ico" type="image/x-icon" sizes="16x16"/><link rel="preload" href="//yastatic.net/islands/_/PyVcRbwHetz0gOVWLonWH7Od8zM.woff2" as="font" type="font/woff2" crossorigin/><link rel="preload" href="//yastatic.net/islands/_/7_GKBdKFbUPzKlghJRv55xgz0FQ.woff2" as="font" type="font/woff2" crossorigin/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="description" content="Простой способ сокращать ссылки и делиться ими"/><title>Яндекс Кликер — Сокращение ссылок</title><script defer="defer" src="https://yastatic.net/s3/clicker/1.15.0/runtime.ru.js"></script><script defer="defer" src="https://yastatic.net/s3/clicker/1.15.0/critical-css.ru.js"></script><script defer="defer" src="https://yastatic.net/s3/clicker/1.15.0/339.ru.js"></script><script defer="defer" src="https://yastatic.net/s3/clicker/1.15.0/main.ru.js"></script><link href="https://yastatic.net/s3/clicker/1.15.0/critical-css.css" rel="stylesheet"/><link href="https://yastatic.net/s3/clicker/1.15.0/main.css" rel="stylesheet"/><script nonce="6Gy0/8OP2JpSinotKGIjGQ==">
 window.__bootstrapData = {"MetrikaCounter":{"items":{"696b7121-5ef9-ff57-56d9-f0fa8ea20566":{"disabled":false,"isWebvisorEnabled":false,"id":1173931}},"uniqKeyByIds":{},"aliases":{"single":"696b7121-5ef9-ff57-56d9-f0fa8ea20566"},"lists":{}},"ShortenedUrl":{"items":{"7a03f6b3-08d0-7b03-e3ff-0926a42d2339":{"originalUrl":"https://q.mc-daniel.ru/7e840201-3d8c-11ee-863a-74563c6bc6ca","shortenedUrl":"https://clck.ru/35McTr"}},"uniqKeyByIds":{},"aliases":{"single":"7a03f6b3-08d0-7b03-e3ff-0926a42d2339"},"lists":{}},"ServiceEntity":{"items":{"0631a666-4ee2-fbda-601c-06411e310938":{"type":"clck"}},"uniqKeyByIds":{},"aliases":{"single":"0631a666-4ee2-fbda-601c-06411e310938"},"lists":{}},"ApplicationParametersEntity":{"items":{"8db42fa1-e6cc-f1c7-7300-bb8ebd5d3862":{"isMobile":false}},"uniqKeyByIds":{},"aliases":{"single":"8db42fa1-e6cc-f1c7-7300-bb8ebd5d3862"},"lists":{}}} </script> </head><body><div> <script type="text/javascript" nonce="6Gy0/8OP2JpSinotKGIjGQ=="> (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; var z = null;m[i].l=1*new Date(); for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }} k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag_beta.js", "ym"); ym(1173931, "init", {clickmap:true,trackLinks:true,accurateTrackBounce:true}); </script> <noscript> <div><img src="https://mc.yandex.ru/watch/1173931" style="position:absolute; left:-9999px;" alt="" /></div> </noscript> </div><noscript>Для работы сервиса необходимо включить JavaScript в настройках браузера</noscript><div id="root"><div class="screen app"><div class="screen__main"><div class="screen__body screen__body_no-left-sidebar"><div class="screen__content-wrapper"><div class="screen__content"><div class="main-screen"><div class="main-screen__container"><div class="app-logo"><a href="https://ya.ru/" class="link app-logo__icon" target="_blank"><span class="link__text"><svg width="48" fill="none" height="48" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_953_9187)"><mask id="mask0_953_9187" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="48" height="48"><circle cx="24" cy="24" r="24" fill="white"></circle></mask><g mask="url(#mask0_953_9187)"><rect width="48" height="48" fill="#FC3F1D"></rect><path d="M27.5389 13.4409H25.11C20.9461 13.4409 18.8642 15.5228 18.8642 18.6457C18.8642 22.1156 20.2522 23.8505 23.375 25.9325L25.804 27.6674L18.8642 38.424H13.3124L19.9052 28.7084C16.0883 25.9325 14.0064 23.5035 14.0064 18.9927C14.0064 13.4409 17.8232 9.62402 25.11 9.62402H32.3967V38.424H27.5389V13.4409Z" fill="white"></path></g></g><defs><clipPath id="clip0_953_9187"><rect width="48" height="48" fill="white"></rect></clipPath></defs></svg></span></a><h1 class="app-logo__text">Кликер</h1></div><span class="main-screen__text">Помогите клиентам быстро найти вашу страницу в интернете. Благодаря короткой ссылке клиентам не придётся видеть длинные url-адреса, занимающие много места.</span><div class="main-screen__shortener-container"><div class="shortener"><div class="shortener__url-input-container"><div class="text-input shortener__url-input text-input_view_contrast text-input_size_s56"><span class="text-input__content"><input class="text-input__control" placeholder="Введите ссылку, которую нужно сократить" type="text" value="https://q.mc-daniel.ru/7e840201-3d8c-11ee-863a-74563c6bc6ca"/><span class="text-input__box"></span></span></div><button class="button button_width_auto button_size_s56 button_view_primary button_mode_text" disabled=""><div class="button__shape"><div class="button__content"><span title="Сократить" class="button__text">Сократить</span></div></div></button></div></div></div></div></div></div></div><div class="screen__footer"><div class="app-footer"><div class="footer"><div class="footer__links-container"><div class="footer__link"><a href="https://yandex.ru/legal/clck_termsofuse/" class="link link_view_shade link_size_s14" target="_blank"><span class="link__text">Правила сервиса</span></a></div><div class="footer__link"><a class="link link_view_shade link_size_s14"><span class="link__text">API</span></a></div><div class="footer__link"><a href="https://qr.yandex.ru" class="link link_view_shade link_size_s14" target="_blank"><span class="link__text">QR-Генератор</span></a></div></div><div class="footer__right-content"><div class="footer__copyright"><span class="copyright">© <!-- -->2010–2023<!-- --> <!-- -->ООО «<a href="https://ya.ru" class="link link_view_shade"><span class="link__text">ЯНДЕКС</span></a>»</span></div></div></div></div></div></div></div><div id="screen-fixed-popup" class="screen__fixed-popup"></div></div></div></body></html> | |||
| 10
    
        Tarlich 21.08.23✎ 16:51 | 
        (8) осталось узнать как получить "shortenedUrl"  ....     | |||
| 11
    
        MMB 21.08.23✎ 17:00 | 
        попробуй так например
 ИтоговаяСсылка = Лев(Сред(СтрокаОтвет, СтрНайти(СтрокаОтвет, """shortenedUrl"":""") + 16), СтрНайти(Сред(СтрокаОтвет, СтрНайти(СтрокаОтвет, """shortenedUrl"":""") + 16), """") - 1); | |||
| 12
    
        Tarlich 21.08.23✎ 17:03 | 
        Результат.Заголовки.Получить("shortenedUrl") = Неопределено     | |||
| 13
    
        Tarlich 21.08.23✎ 17:06 | 
        Спасибо добрые люди !
 надеюсь и я ВАМ помогу -)) | |||
| 14
    
        MMB 21.08.23✎ 17:11 | 
        Функция ПолучитьСокращеннуюСсылку(ДлиннаяСсылка)
 Соединение = Новый HTTPСоединение("clck.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL()); Запрос = Новый HTTPЗапрос("/?url="+ДлиннаяСсылка); Результат = Соединение.Получить(Запрос); Если Результат.КодСостояния = 200 Тогда СтрокаОтвет = Результат.ПолучитьТелоКакСтроку(); ИтоговаяСсылка = Лев(Сред(СтрокаОтвет, СтрНайти(СтрокаОтвет, """shortenedUrl"":""") + 16), СтрНайти(Сред(СтрокаОтвет, СтрНайти(СтрокаОтвет, """shortenedUrl"":""") + 16), """") - 1); Возврат ИтоговаяСсылка; Иначе Возврат ""; КонецЕсли; КонецФункции | |||
| 15
    
        Garykom гуру 21.08.23✎ 17:13 | 
        (14) хаха
 ты не забыл про urlencode ? | |||
| 16
    
        Garykom гуру 21.08.23✎ 17:14 | 
        (15)+ для get запросов в его url
 лучше все же в тело засунуть | |||
| 17
    
        MMB 21.08.23✎ 17:21 | 
        (15) Забыл. Ну или не знал. Но видимо в яндексе это предусмотрели и работает и так. Можешь показать пример ссылки на которой этот код не отработает? Просто интересно.     | |||
| 18
    
        Garykom гуру 21.08.23✎ 17:22 | 
        Запрос.УстановитьТелоИзСтроки("url="+ДлиннаяСсылка, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
 Результат = Соединение.ОтправитьДляОбработки(Запрос); | |||
| 19
    
        Garykom гуру 21.08.23✎ 17:24 | ||||
| 20
    
        Garykom гуру 21.08.23✎ 17:25 | 
        >1с.онлайн ПРЕМИУМ РЕКОМЕНДУЕМ КИРИЛЛИЦА 207490руб. В корзину
 мдя ценник | |||
| 21
    
        MMB 21.08.23✎ 17:29 | 
        (19) У меня мой код с этой ссылкой отработал штатно и выдал ту же сокращенную ссылку как в браузере     | |||
| 22
    
        MMB 21.08.23✎ 17:31 | 
        (18) Попробовал вот так сделать
 Функция ПолучитьСокращеннуюСсылку(ДлиннаяСсылка) Соединение = Новый HTTPСоединение("clck.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL()); Запрос = Новый HTTPЗапрос(); Запрос.УстановитьТелоИзСтроки("url="+ДлиннаяСсылка, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); Результат = Соединение.ОтправитьДляОбработки(Запрос); Если Результат.КодСостояния = 200 Тогда СтрокаОтвет = Результат.ПолучитьТелоКакСтроку(); ИтоговаяСсылка = Лев(Сред(СтрокаОтвет, СтрНайти(СтрокаОтвет, """shortenedUrl"":""") + 16), СтрНайти(Сред(СтрокаОтвет, СтрНайти(СтрокаОтвет, """shortenedUrl"":""") + 16), """") - 1); Возврат ИтоговаяСсылка; Иначе Возврат ""; КонецЕсли; КонецФункции Сервер 405 отвечает. Что не так сделал? | |||
| 23
    
        Garykom гуру 21.08.23✎ 17:44 | ||||
| 24
    
        MMB 21.08.23✎ 17:51 | 
        Попробовал "/" - так же 405
 Попробовал "/--" - возвращает html станицу, но там что-то вроде документации с примерами кода на странице о_О Пока работает только (14) не смотря на корявость =) | |||
| 25
    
        Garykom гуру 21.08.23✎ 17:53 | 
        (24) угу, аналогично
 походу сервис кривоват | |||
| 26
    
        Garykom гуру 21.08.23✎ 17:54 | 
        Кликер
 Серьёзный укорачиватель URL У этого сервиса есть REST-образный интерфейс, позволяющий автоматизировать работу с ним. Для того чтобы воспользоваться им, достаточно передать переменную url в POST или GET запросе по адресу https://clck.ru/--, например, так: $ curl https://clck.ru/--?url=https://ya.ru или вот так: >>> url = 'http://bit.ly' >>> import urllib2 >>> fetcher = urllib2.urlopen( 'https://clck.ru/--?url='+ url) >>> fetcher.read() 'https://clck.ru/8JM' или даже так: <?=file_get_contents("https://clck.ru/--?url=http://b23.ru");?> Добавочные примеры от Игоря Евсюкова: #import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; NSString *address = @"https://clck.ru/"; NSString *urlString = \ [NSString stringWithFormat:@"https://clck.ru/--?url= %@",address]; NSURL *url = [NSURL URLWithString:urlString]; NSString *adr = [NSString stringWithContentsOfURL:url]; NSLog(adr); [pool drain]; return 0; } require 'open-uri' open("https://clck.ru/--?url= "+"https://clck.ru/").read => https://clck.ru/5U Вернуться к ручному добавлению ссылок Версия 5, © 2010-2023 «"Яндекс"» только GET походу, POST нету | |||
| 27
    
        MMB 21.08.23✎ 17:58 | 
        Вот так, кстати тоже работает. Если -- перед ? добавить то в Результат.ПолучитьТелоКакСтроку() сразу коротка ссылка будет
 Функция ПолучитьСокращеннуюСсылку(ДлиннаяСсылка) Соединение = Новый HTTPСоединение("clck.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL()); Запрос = Новый HTTPЗапрос("/--?url="+ДлиннаяСсылка); Результат = Соединение.Получить(Запрос); Если Результат.КодСостояния = 200 Тогда Возврат Результат.ПолучитьТелоКакСтроку(); Иначе Возврат ""; КонецЕсли; КонецФункции | |||
| 28
    
        Garykom гуру 21.08.23✎ 18:01 | 
        &НаСервере
 Функция ПолучитьСокращеннуюСсылку(ДлиннаяСсылка) СтрокаURL = КодироватьСтроку(ДлиннаяСсылка, СпособКодированияСтроки.URLВКодировкеURL, "UTF-8"); Соединение = Новый HTTPСоединение("clck.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL()); Запрос = Новый HTTPЗапрос("/?url="+СтрокаURL); Результат = Соединение.Получить(Запрос); Если Результат.КодСостояния = 200 Тогда СтрокаОтвет = Результат.ПолучитьТелоКакСтроку(); ИтоговаяСсылка = Лев(Сред(СтрокаОтвет, СтрНайти(СтрокаОтвет, """shortenedUrl"":""") + 16), СтрНайти(Сред(СтрокаОтвет, СтрНайти(СтрокаОтвет, """shortenedUrl"":""") + 16), """") - 1); Возврат ИтоговаяСсылка; Иначе Возврат ""; КонецЕсли; КонецФункции | |||
| 29
    
        Garykom гуру 21.08.23✎ 18:02 | 
        (27) добавь 
 СтрокаURL = КодироватьСтроку(ДлиннаяСсылка, СпособКодированияСтроки.URLВКодировкеURL, "UTF-8"); | |||
| 30
    
        Garykom гуру 21.08.23✎ 18:04 | 
        &НаСервере
 Функция ПолучитьСокращеннуюСсылку(ДлиннаяСсылка) СтрокаURL = КодироватьСтроку(ДлиннаяСсылка, СпособКодированияСтроки.URLВКодировкеURL, "UTF-8"); Соединение = Новый HTTPСоединение("clck.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL()); Запрос = Новый HTTPЗапрос("/--?url="+СтрокаURL); Результат = Соединение.Получить(Запрос); Если Результат.КодСостояния = 200 Тогда Возврат Результат.ПолучитьТелоКакСтроку(); Иначе Возврат ""; КонецЕсли; КонецФункции | |||
| 31
    
        MMB 21.08.23✎ 18:06 | 
        (29) Таки да, работает. Но как я понял яндекс как-то на своей стороне обрабатывает, даже если ему просто текстом как есть ссылку скинуть все равно работает.
 Итого в результате имеем: Функция ПолучитьСокращеннуюСсылку(ДлиннаяСсылка) СтрокаURL = КодироватьСтроку(ДлиннаяСсылка, СпособКодированияСтроки.URLВКодировкеURL, "UTF-8"); Соединение = Новый HTTPСоединение("clck.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL()); Запрос = Новый HTTPЗапрос("/--?url="+СтрокаURL); Результат = Соединение.Получить(Запрос); Если Результат.КодСостояния = 200 Тогда Возврат Результат.ПолучитьТелоКакСтроку(); Иначе Возврат ""; КонецЕсли; КонецФункции | |||
| 32
    
        MMB 21.08.23✎ 18:07 | 
        (30) Сорри не увидел сообщение)     | |||
| 33
    
        Garykom гуру 21.08.23✎ 18:13 | 
        и с POST разобрался
 &НаСервере Функция ПолучитьСокращеннуюСсылкуPOST(ДлиннаяСсылка) Соединение = Новый HTTPСоединение("clck.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL()); Запрос = Новый HTTPЗапрос("/--"); Запрос.Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded"); Запрос.УстановитьТелоИзСтроки("url="+ДлиннаяСсылка, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); Результат = Соединение.ОтправитьДляОбработки(Запрос); Если Результат.КодСостояния = 200 Тогда Возврат Результат.ПолучитьТелоКакСтроку(); Иначе Возврат ""; КонецЕсли; КонецФункции | |||
| 34
    
        Garykom гуру 21.08.23✎ 18:17 | 
        (31) >Но как я понял яндекс как-то на своей стороне обрабатывает, даже если ему просто текстом как есть ссылку скинуть все равно работает.
 возможно это не яндекс а платформа 1С сама URLEncode делает если встречает в URL неподдерживаемые символы как минимум для (33) после установки Content-Type оно делает само | |||
| 35
    
        Garykom гуру 21.08.23✎ 18:19 | 
        (34)+ кстати браузеры это тоже сами делают
 например хром адрес https://моидокументы.рф после перехода если адрес скопировать из строки адреса вставляет: https://xn--d1achjhdicc8bh4h.xn--p1ai/ | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |