Пишем в Twitter из 1С 8

Разобравшись с примерами в интернете, сделал обработку для отправки сообщений в микроблоговый сервис Twitter из 1С 8.

Внешний вид обработкиВнешний вид обработки Основная функция отправки довольно проста:

Процедура ОтправитьТвит(Пользователь,Пароль,Сообщение)

   
ИмяФайлаАвторизации = ПолучитьИмяВременногоФайла();
   
ИмяФайлаИсх = ПолучитьИмяВременногоФайла();
   
ИмяФайлаВх  = ПолучитьИмяВременногоФайла();

   
ВремТекст = Новый ТекстовыйДокумент;
   
ВремТекст.УстановитьТекст(Пользователь+":"+Пароль);
   
ВремТекст.Записать(ИмяФайлаАвторизации,КодировкаТекста.OEM);
   
ВремДД = Новый ДвоичныеДанные(ИмяФайлаАвторизации);
   
УдалитьФайлы(ИмяФайлаАвторизации);

   
СтрСообщение = "status="+Сообщение;

   
ДлинаСообщения = ЗаписатьСтрокуВФайлUTF8безBOM(ИмяФайлаИсх,СтрСообщение);

   
ЗаголовокHTTP = Новый Соответствие();
   
ЗаголовокHTTP.Вставить("Host", "twitter.com");
   
ЗаголовокHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded;");
   
ЗаголовокHTTP.Вставить("Content-Length", Формат(ДлинаСообщения,"ЧГ="));
   
ЗаголовокHTTP.Вставить("Connection", "Close");
   
ЗаголовокHTTP.Вставить("Expect", "");
   
ЗаголовокHTTP.Вставить("Authorization", "Basic "+Base64Строка(ВремДД));


   
HTTP = Новый HTTPСоединение("twitter.com");
   
HTTP.ОтправитьДляОбработки(ИмяФайлаИсх, "/statuses/update.json", ИмяФайлаВх, ЗаголовокHTTP);

   
УдалитьФайлы(ИмяФайлаИсх);
   
УдалитьФайлы(ИмяФайлаВх);

КонецПроцедуры

Вспомогательная функция сохранения строки в UTF-8 без BOM. Как оказалось это проблема сделать средствами платформы. Используем COM объект Adodb.Stream.

Функция ЗаписатьСтрокуВФайлUTF8безBOM(ИмяФайла,Содержимое)

   
S = Новый COMОбъект("ADODB.Stream");
   
S.Type = 2; //1-Binary, 2-Text
   
S.Mode = 3; //3-ReadWrite
   
S.Charset = "utf-8";
   
S.Open();
   
S.WriteText(Содержимое);
   
S.SaveToFile(ИмяФайла, 2);
   
S.Close();
   
S.Type = 1; //1-Binary, 2-Text
   
S.Open();
   
S.LoadFromFile(ИмяФайла);
   
S.Position = 3;
   
CSA S.Read();
   
S.Close();
   
S.Open();
   
S.Write(CSA);
   
S.SaveToFile(ИмяФайла, 2);
   
S.Close();

    Возврат
CSA.GetLength();

КонецФункции

Для чего можно использовать Твиттер в 1С:
- отправка ошибок БД 1С
- отправка состояния удаленных баз 1С
- поддержка пользователей удаленных баз


Вы можете скачать полностью открытую бесплатную обработку для 1С 8 по ссылке ниже.

Прикрепленный файлРазмер
Скачать обработку Твит1С.epf10.52 кб

С сентября 2010 Твиттер

С сентября 2010 Твиттер усложнил авторизацию.
Теперь простая авторизация, которая используется в этой обработке не работает.
Таким образом и обработка не будет работать.
Новый метод авторизации OAuth требует вычисления хэш функции HMAC-SHA1
в 1С это удается пока сделать только через JavaScript в ПолеHTMLДокумента.

twit

А нет ли примеров работы с новой системой авторизации?

Похожие материалы

Справочники

Документы

Отчеты

Обработки