Сокращение ссылок с использованием goo.gl и bit.ly

Программирование - Практика программирования

Обработка, которая позволяет получить короткий интернет адрес с использованием api сервисов goo.gl и bit.ly

Bit.ly

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

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

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

 

Goo.gl

C API сервиса goo.gl можно ознакомиться тут. Для получения короткой ссылки мы должны послать POST запрос по адресу "https://www.googleapis.com/urlshortener/v1/url» (Content-Type: application/json). В параметре «longUrl» передается длинная ссылка. Результатом запроса будет следующее:

{
"kind": "urlshortener#url",
"id": "http://goo.gl/fbsS",
"longUrl": "http://www.google.com/"
}

Нам надо получить значение в «id»это и будет наша короткая ссылка.

&НаСервере
Функция СократитьСсылкуГуглСервер(Ссылка)
ПодготовленнаяСсылка = EncodeURL(Ссылка);
Адрес = "https://www.googleapis.com/urlshortener/v1/url";
ТекстОтвет = "";

ПараметрыПОСТ = "{'longUrl': '" + Ссылка + "'}";
Попытка
WinHttp=Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
WinHttp.Option(2,"Windows-1251");
WinHttp.Open("POST",Адрес,0);
WinHttp.setRequestHeader("Content-Type","application/json");
WinHttp.Send(ПараметрыПОСТ);
ТекстОтвет = WinHttp.ResponseText();
Исключение
Сообщить("Ошибка подключения:");
Сообщить(ОписаниеОшибки());
Возврат
ТекстОтвет;
КонецПопытки;

СтрокаАдреса = СокрЛП(СтрПолучитьСтроку(ТекстОтвет, 3));
Адрес = Сред(СтрокаАдреса, 8, СтрДлина(СтрокаАдреса) -9);

Возврат
Адрес;
КонецФункции

Скачать файлы

Наименование Файл Версия Размер
СокращалкаСсылокГуглБитЛи.epf
.epf 7,01Kb
13.01.11
14
.epf 7,01Kb 14 Скачать

См. также

Комментарии
1. Максим Зудин (kasper076) 18 17.01.11 11:40 Сейчас в теме
Почему в одном случае используется Microsoft.XMLHTTP, а в другом WinHttp.WinHttpRequest.5.1 ???
2. Андрей Данилюк (DanilaDru) 232 17.01.11 21:17 Сейчас в теме
Два куска писалось в разное время и разные были примеры под рукой :)
Можно использовать один из объектов. Будет работать. Только в случае с гуглом надо будет закомментировать WinHttp.Option()
3. Сергей Осипенко (Сергей Осипенко) 22.01.11 04:21 Сейчас в теме
А какая практическая проблема решалась?
4. Андрей Данилюк (DanilaDru) 232 22.01.11 13:05 Сейчас в теме
В системе ведутся заказы покупателей и их выполнение. Для того чтобы клиента держать в курсе состояния его заказа используются расшаренные документы google, которые привязываются к каждому контрагенту. 1с-ка выливает данные в документ, а клиенту отправляется ссылка на документ в почте или sms. Чтобы сократить количество символов в письме/смс использовались эти методы.
5. Евгений Левченко (MYRZILKA123) 2 14.11.11 11:19 Сейчас в теме
прикольно надо будет попробовать)
6. Владимир Самойлов (samamoiloff) 858 31.01.12 17:33 Сейчас в теме
А 1с "выливает" данные в документ Гугл через подобный механизм? Можете поделиться? Может публикацию сделаете? Было бы очень интересно.
7. Андрей Данилюк (DanilaDru) 232 31.01.12 18:46 Сейчас в теме
(6) samamoiloff, Я делал обзорную публикацию я себя на блоге http://danila.org.ua/?p=1166
Оставьте свое сообщение