telegram api sendDocument

sincess

Client
Регистрация
20.08.2021
Сообщения
25
Благодарностей
1
Баллы
3
Привет уважаемые! Подскажите пожалуйста, в чем проблема? Не получается отправить текстовый файл на канал с компьютера. Вот post запрос:
129194

ответ пустой. если отправляю запрос с типом данных urlencoded, то ответ такой: {"ok":false,"error_code":400,"description":"Bad Request: invalid file HTTP URL specified: Wrong port number specified in the URL"}

при этом вот этот запрос работает и отправляет текст:

129195
 

sincess

Client
Регистрация
20.08.2021
Сообщения
25
Благодарностей
1
Баллы
3
Неужели никто не сталкивался? В интернете искал, с чатом gpt общался, ничего не помогло, последняя надежда на зеннокомьюнити!!
 

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
772
Благодарностей
515
Баллы
93
У тебя тип данных неверный. multipart служит для загрузки файлов на сервер, а не в чат.
Вообще вроде нужен тип данных application/json, но у тебя тело не в формате JSON, поэтому попробуй заменить на urlencoded.
Ну и @ в пути к файлу вроде как мешаться должна, попробуй ее убрать, а если будет ругаться на \, то замени их на \\

Вот еще дока вроде неплохая
 

sincess

Client
Регистрация
20.08.2021
Сообщения
25
Благодарностей
1
Баллы
3
У тебя тип данных неверный. multipart служит для загрузки файлов на сервер, а не в чат.
Вообще вроде нужен тип данных application/json, но у тебя тело не в формате JSON, поэтому попробуй заменить на urlencoded.
Ну и @ в пути к файлу вроде как мешаться должна, попробуй ее убрать, а если будет ругаться на \, то замени их на \\

Вот еще дока вроде неплохая


129212



ответ: {"ok":false,"error_code":400,"description":"Bad Request: invalid file HTTP URL specified: Wrong port number specified in the URL"}



129216


ответ: {"ok":false,"error_code":400,"description":"Bad Request: invalid file HTTP URL specified: Wrong port number specified in the URL"}




129214


ответ: {"ok":false,"error_code":400,"description":"Bad Request: invalid file HTTP URL specified: Wrong port number specified in the URL"}


как ни бьюсь, ответ один.
 

Alex91

Активный пользователь
Регистрация
15.08.2024
Сообщения
322
Благодарностей
82
Баллы
28
Там в доках, есть пример на c# с использованием restsharp , попробуй его. restsharp с зенкой дружит.
 

sincess

Client
Регистрация
20.08.2021
Сообщения
25
Благодарностей
1
Баллы
3
всем спасибо, получилось. Помог бот из телеги @zpcsharp_bot. спасибо тому, кто его сделал!!!

в общем получилось с помощью кода:

var boundary = string.Format("-----------------------------{0}", Macros.TextProcessing.RandomText(14, "s", "0123456789"));
var sb = new StringBuilder();

sb.AppendLine("--" + boundary);
sb.AppendLine("Content-Disposition: form-data; name=\"document\"; filename=\"file.txt\"");
sb.AppendLine("Content-Type: text/plain");
sb.AppendLine();
sb.AppendLine(File.ReadAllText(Path.Combine(project.Path, "file.txt")));
sb.AppendLine("--" + boundary + "--");

byte[] bytes = Encoding.UTF8.GetBytes(sb.ToString());

string response = ZennoPoster.HTTP.Request(
ZennoLab.InterfacesLibrary.Enums.Http.HttpMethod.POST,
"https://api.telegram.org/bot<YourBotToken>/sendDocument?chat_id=<YourChatId>",
content: bytes,
contentPostingType: "multipart/form-data; boundary=" + boundary,
proxy: "",
Encoding: "UTF-8",
UserAgent: project.Profile.UserAgent,
respType: ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly,
Timeout: 30000,
UseRedirect: true,
MaxRedirectCount: 5,
cookieContainer: project.Profile.CookieContainer
);

return response;

Замените <YourBotToken> на токен вашего бота и <YourChatId> на ID вашего канала или чата. Убедитесь, что файл file.txt находится в папке проекта. и вуаля!!! блин два дня убил.

всем кому надо, юзайте)))
 

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)