Разобравшись с примерами в интернете, сделал обработку для отправки сообщений в микроблоговый сервис 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 по ссылке ниже.
С сентября 2010 Твиттер
С сентября 2010 Твиттер усложнил авторизацию.
Теперь простая авторизация, которая используется в этой обработке не работает.
Таким образом и обработка не будет работать.
Новый метод авторизации OAuth требует вычисления хэш функции HMAC-SHA1
в 1С это удается пока сделать только через JavaScript в ПолеHTMLДокумента.
twit
А нет ли примеров работы с новой системой авторизации?