Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 29.12.2017, 13:30   #1
PTyTb32
Форумчанин
 
Регистрация: 06.10.2013
Сообщений: 125
Репутация: 17

icq: 418328851
По умолчанию Telegram API

Привет, пишу програмку на делфи, задача при запуске делать запрос к telegram что бы программа загружала в бота фотографию и текст, и бот отправлял бы это определенным людям.
я добился следующих результатов, программа отправляет обычное сообщение и оно доходит указанному пользователю, но вот как спамить фотку, не ясно. думаю стоит пояснить суть программы, это не спам бот, а некая система защиты, то есть программа (не моя) в случае движения на камере, она делает фото и может запустить программу с параметрами, этой запускаемой программой и будет моя программа, в параметрах номер камеры и путь до фотки будут, то есть для примера ParamStr(1) = '1'; ParamStr(2) = 'C:\fotos\20171229124923';
Так вот основной вопрос, как залить фото и получить его id что бы потом отправить запрос указав этот id
для запросов использую TIDHTTP

Код:

http.MimeType := 'multipart/form-data; boundary=' + bound;
  s := GetBoundary(true) + 'Content-Disposition: form-data; name="chat_id";' + sLineBreak + sLineBreak + ListView1.Selected.Caption + sLineBreak + sLineBreak;
  http.Document.Write(PAnsiChar(s)^, Length(s));
  s := GetBoundary(true) + 'Content-Disposition: form-data; name="photo"; filename=' +
   extractfilename(od.FileName) + sLineBreak + 'Content-Type: multipart/form-data' + sLineBreak + sLineBreak;
  http.Document.Write(PAnsiChar(s)^, Length(s));
  f := TFileStream.Create(od.FileName, fmOpenRead);
  f.Position := 0;
  http.Document.CopyFrom(f, f.Size);
  f.Free;
  s := sLineBreak + GetBoundary(true);
  http.Document.Write(PAnsiChar(s)^, Length(s));
  s := 'Content-Disposition: form-data; name="caption";' + sLineBreak + slinebreak + AnsiToUtf8('Тестовая фотка') + sLineBreak + getboundary(false);
  http.Document.Write(PAnsiChar(s)^, Length(s));
  s := Format('https://api.telegram.org/bot%s/sendphoto', [bot_key]);
  if http.HTTPMethod('POST', s) then
    Memo1.Lines.LoadFromStream(http.Document);

вот что я нашел, но не могу приспособить это дело под IdHTTP((( и нет данных о некоторых переменных
PTyTb32 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Уведомления Zabbix в Telegram Necroskull Администрирование серверов, VPS, хостингов 1 10.06.2017 15:46
Бот в telegram Manr63 Свободное общение 1 28.02.2017 14:58
telegram bot progmen Фриланс 2 30.11.2016 15:27
Использование API Telegram Cruzel Общие вопросы C/C++ 2 08.09.2015 15:17


17:01.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru