Форум программистов, компьютерный форум, киберфорум
Delphi: Сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/40: Рейтинг темы: голосов - 40, средняя оценка - 4.88
1 / 1 / 0
Регистрация: 01.04.2018
Сообщений: 10
1

Telegram Bot Отправка фото

15.10.2020, 14:44. Показов 8075. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не могу отправить фото пишет Ошибка 400 Не верный запрос.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
procedure TForm5.Button3Click(Sender: TObject);
const BaseUrl = 'https://api.telegram.org/bot';
var
  PostData: TIdMultiPartFormDataStream;
  FileName:string;
  IdHTTP : TIdHTTP;
  ssl : TIdSSLIOHandlerSocketOpenSSL;
  request:string;
 
  config:myJSONItem;
  S:string;
   Info   : TStringList;
begin
  if OpenDialog1.Execute then
  FileName:=OpenDialog1.FileName;
  if FileName='' then Exit;
  PostData := TIdMultiPartFormDataStream.Create;
 
 
  IdHTTP := TIdHTTP.Create;
  SSL:=TIdSSLIOHandlerSocketOpenSSL.Create(IdHTTP);
 Try
  SSL.SSLOptions.Mode := sslmUnassigned;
  SSL.SSLOptions.SSLVersions := [sslvTLSv1, sslvTLSv1_1, sslvTLSv1_2] ;
  SSL.SSLOptions.Method := sslvTLSv1_2; // принудительно выбираем
  IdHTTP.IOHandler:=SSL;
 
  IdHTTP.Request.CharSet:='utf8';
  IdHTTP.Request.ContentType:= 'multipart/form-data';
 
 
  PostData.AddFormField('Chat_id', Chat_id);
  PostData.AddFile('Photo', FileName, 'multipart/form-data');
  PostData.AddFormField('caption', 'TestFiles');
 
  request := BaseUrl+Key+'/sendphoto';
  Label1.Caption :=request;
 
  Memo1.Lines.LoadFromStream(PostData) ;
  S := IdHTTP.post(request,PostData);
 
 
 Finally
 
 ssl.Free;
 IdHTTP.Free;
 
 End;
 
 
End;
// Сам запрос выглядит в мемо так

----------101520142124711
Content-Disposition: form-data; name="Chat_id"
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

856040207
----------101520142124711
Content-Disposition: form-data; name="Photo"; filename="1600074944844.jpg"
Content-Type: multipart/form-data
Content-Transfer-Encoding: binary

яШябЋExif


Подскажите в чем ошибка?
PS
Читать , посылать сообщения умею, Chat_id верный
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.10.2020, 14:44
Ответы с готовыми решениями:

Отправка фото на удаленный компьютер
Доброе время суток, Подскажите, пожалуйста, какими компонентом и как воспользоваться, чтоб...

Telegram bot отправить фото
Как сделать так, чтобы телеграмм бот отправлял фото которое находится на пк, по дефолту нужен url...

Telegram bot отправка multiline сообщений
Доброго дня! Есть html форма. Текст из этой формы отправляю строку в php скрипт, а в нем уже делаю...

Telegram bot
Здравствуйте уважаемые форумчане! Подскажите как решить такую проблему: Написал небольшой бот для...

5
Да так, от скуки захожу.
145 / 124 / 44
Регистрация: 25.06.2017
Сообщений: 366
Записей в блоге: 4
16.10.2020, 09:21 2
Попробуй боту в личку закинуть все изображение, запоминаешь file_id, и потом пересылать куда надо.
0
1 / 1 / 0
Регистрация: 01.04.2018
Сообщений: 10
16.10.2020, 11:53  [ТС] 3
Разобрался все параметры Chat_id, Photo должны быть с маленькой буквы. Только так работает

Добавлено через 2 минуты
Готовый вариант с поддержкой русских букв
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
function SendFiles(FileName,Caption,TipFiles,chat_Id:string):bool;
//TipFiles = document,photo,audio,video,voice,sticker // маленькими буквами !!!!
 
const BaseUrl = 'https://api.telegram.org/bot';
var
  PostData: TIdMultiPartFormDataStream;
  IdHTTP : TIdHTTP;
  ssl : TIdSSLIOHandlerSocketOpenSSL;
  request:string;
 
  config:myJSONItem;
  S:string;
 
 
begin
 
  PostData := TIdMultiPartFormDataStream.Create;
 
  IdHTTP := TIdHTTP.Create;
  SSL:=TIdSSLIOHandlerSocketOpenSSL.Create(IdHTTP);
 Try
  SSL.SSLOptions.Mode := sslmUnassigned;
  SSL.SSLOptions.SSLVersions := [sslvTLSv1, sslvTLSv1_1, sslvTLSv1_2] ;
  SSL.SSLOptions.Method := sslvTLSv1_2; // принудительно выбираем
  IdHTTP.IOHandler:=SSL;
 
  IdHTTP.Request.CharSet:='utf8';
  IdHTTP.Request.ContentType:= 'multipart/form-data';
 
  PostData.AddFormField('chat_id', Chat_id) ;   
 
   with PostData.AddFile(TipFiles, FileName ) do    // Путь к файлу
   Begin
   HeaderCharset := 'utf-8';
   HeaderEncoding := '8';
   End;
 
 
  PostData.AddFormField('caption', Caption ,'utf-8').ContentTransfer := '8bit';   // Описание  файла
 
 
  request := BaseUrl+Key+'/send'+TipFiles;
 
  config := myJSONItem.Create;
  config.Code  := IdHTTP.post(request,PostData);
 
  result := config['ok'].getBool;
 
 
 Finally
 config.Free;
 ssl.Free;
 IdHTTP.Free;
 
 End;
 
 
End;
1
0 / 0 / 0
Регистрация: 05.12.2020
Сообщений: 5
04.02.2021, 20:35 4
как ты вызываешь функцию?
0
1 / 1 / 0
Регистрация: 01.04.2018
Сообщений: 10
03.10.2021, 17:59  [ТС] 5
Pascal
1
2
3
4
5
6
7
8
9
10
procedure TForm5.Button3Click(Sender: TObject);
var
  FileName:string;
begin
  if OpenDialog1.Execute then
  FileName:=OpenDialog1.FileName;
  if FileName='' then Exit;
 
  if SendFiles(FileName,'','document',chat_Id) then  Memo1.Lines.Add('Файл успешно отправлен')
End;
0
0 / 0 / 0
Регистрация: 15.01.2018
Сообщений: 28
13.02.2023, 08:33 6
Можешь зайти и сказать уже готовую самописную библиотеку с моего гита https://github.com/yaroslav-ar... ascal_lib/ . Есть функционал отправки получения сообщений, отправка файлов и геолокации.
0
13.02.2023, 08:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.02.2023, 08:33
Помогаю со студенческими работами здесь

Telegram bot на C++
Есть ли что-то похожее для C++, как Telegram.bot на C#? На C++ есть программа, которую думаю...

Telegram bot
Добрый день в питоне я полный ноль, но для работы нужно написать телеграм бота. пример что нужно...

Telegram Bot
Всем привет. Как написать простого бота для Telegram, который просто отправляет сообщения? :)

Telegram bot
Здравствуйте, учусь писать телеграм ботов. Подскажите пожалуйста библиотеку, для asp.net mvc 5. И я...

Telegram Bot
1)Как реализовать клавиатуру как на фото? 2)Почему запуская myBot.py пишу ему сообщение в...

Bot telegram
Доброго времени суток! :) Пишу свойего бота для телеграм вот уже месяц(немогу разобраться). Хочу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru