Программист 1с
twitter email rss
  • Home
  • Полезности
    • Мобильное приложение курьера
    • MailChimp + УТ 11.
    • 1с-sms
    • Pharma-MPD
    • Зуботехническая лаборатория
  • Блог
  • Партнеры
  • Команда
    • Услуги
    • Опыт
    • Отзывы
    • Контакты
  • Поддержка
    • Инструкция
    • Redmine






Для формирования красивых писем с ссылками использовал сервис сокращения bit.ly. Была написана процедура сокращение ссылок под 1с. Для работы с сервисом необходимо знать логин пользователя сервиса и его API ключ. Данную информацию можно узнать на странице http://bit.ly/a/your_api_key

Документацию по API сервиса можно почитать тут. Для создания короткой ссылки интересует эта часть документации. Как видно из документации вариантов получения ответа от сервиса несколько. Я выбрал самый простой вариант — txt. Функции подготовки url использованы такие же как и в примере генерации qr-кода для менее сложного копипаста функционала предоставляю полный текст 🙂

&НаСервере
Функция hex(Знач Значение)
    Значение=Число(Значение);
    Если Значение<=0 Тогда
        Результат="0";
    Иначе
        Значение=Цел(Значение);
        Результат="";
        Пока Значение>0 Цикл
            Результат=Сред("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Значение%16 + 1,1)+Результат;
            Значение=Цел(Значение/16) ;
        КонецЦикла;
    КонецЕсли;
    Если СтрДлина(Результат) < 2 Тогда

        Результат = "0" + Результат;

    КонецЕсли;
    Возврат "%" + Результат;
КонецФункции

&НаСервере
Функция EncodeURL(URL)
    // отсюда: http://www.w3.org/International/URLUTF8Encoder.java
    Рез = "";
    Для Сч = 1 По СтрДлина(URL) Цикл
        ch = Сред(URL,Сч,1);
        vch = КодСимвола(ch);

        Если ("A" <= ch ) И ( ch <= "Z") Тогда      // "A".."Z"
            Рез = Рез + ch;
        ИначеЕсли ("a" <= ch ) И ( ch <= "z") Тогда // "a".."z"
            Рез = Рез + ch;
        ИначеЕсли ("0" <= ch ) И ( ch <= "9") Тогда // "0".."9"
            Рез = Рез + ch;
        ИначеЕсли (ch = " ") ИЛИ ( ch = "+") Тогда          // space
            Рез = Рез + "+";
        ИначеЕсли (ch = "-" ) ИЛИ ( ch = "_")       // unreserved
            ИЛИ (ch = ".") ИЛИ (ch = "!")
            ИЛИ (ch = "~") ИЛИ (ch = "*")
            ИЛИ (ch = "\") ИЛИ (ch = "(")
            ИЛИ (ch = ")") Тогда
            Рез = Рез + ch;
        ИначеЕсли (vch <= 127) Тогда        // other ASCII
            Рез = Рез + hex(vch);
        ИначеЕсли (vch <= 2047) Тогда       // non-ASCII <= 0x7FF
            Рез = Рез + hex(192 + Цел(vch / 64));
            Рез = Рез + hex(128 + (vch % 64));
        Иначе                   // 0x7FF < ch <= 0xFFFF
            Рез = Рез + hex(224 + Цел(vch / 4096));
            Рез = Рез + hex(128 + (Цел(vch / 64) % 64));
            Рез = Рез + hex(128 + (vch % 64));
        КонецЕсли;

    КонецЦикла;

    Возврат Рез;
КонецФункции // ()

&НаСервере
Функция СократитьСсылку(Ссылка)  Экспорт
    ПодготовленнаяСсылка = EncodeURL(Ссылка);
    Пользователь = "ваш логин";
    АПИКлюч = "ваш апи ключ";
    Адрес = "http://api.bit.ly/v3/shorten?login=" + Пользователь +"&apiKey=" + АПИКлюч +"&longUrl="+ ПодготовленнаяСсылка + "&format=txt";

    ХМЛХТТП = ПолучитьCOMОбъект("", "Microsoft.XMLHTTP");
    ХМЛХТТП.Open("GET", Адрес, Ложь);
    ХМЛХТТП.Send(Null);
    Возврат СокрЛП(ХМЛХТТП.ResponseText);
КонецФункции

Похожие записи:

  1. QR код в 1с
  2. Сокращаем ссылки в 1с
  3. Выгрузка табличного документа в Google таблицу
  4. Работа с буфером обмена
  5. Интеграция MailChimp и 1с
← Внутренняя почта, обсуждение объектов базы 1с
Сокращался ссылок goo.gl и 1c →

Новости

  • Работаем с Opendatabot из 1с
  • Сокращаем ссылки в 1с
  • Загрузка данных из Google spreadsheet в 1с
  • Формирование скриншотов сайтов в 1с
  • Удаление старой номенклатуры

Подписка

Copyright © 2022 danila.org.ua
Умные решения для вашего бизнеса