Имя: Пароль:
1C
 
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
(22)
Запрос = Новый HTTPЗапрос("/");

но в апи описано 'https://clck.ru/--'
так что возможно "/--"
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/