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);
Возврат Адрес;
КонецФункции