Помогите разобраться - отправка картинки в Телеграм канал через API

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
Ну собственно вопрос - как? :-)

бот создан, ключ есть, сообщения отправлять могу.
А вот отправить картинку с компа, не прокурил пока.
Помогите плиз, объяснением
 

Sz5

Client
Регистрация
10.12.2012
Сообщения
157
Благодарностей
186
Баллы
43

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
это понятно, конечно первым делом в документацию полез...
так как не прогер, не понял как использовать "что шлем", да и чем слать так же не до конца понял.
можно пример привести?
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113

BenLinus

Client
Регистрация
29.04.2016
Сообщения
39
Благодарностей
6
Баллы
8
Так же не могу разобраться с данным вопросом. По идеи нужно использовать post запрос, только как грамотно составить, именно картинку вставленную ссылкой из сети могу, там гет подходит, а вот как именно свою загрузить не пойму.
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 787
Благодарностей
2 453
Баллы
113
Вот здесь есть пример кода отправки картинки в телеграмм через АПИ.
 

BenLinus

Client
Регистрация
29.04.2016
Сообщения
39
Благодарностей
6
Баллы
8
Вот здесь есть пример кода отправки картинки в телеграмм через АПИ.
Можно на кубике накидать для наглядности? Ну очень не легко понять чужой код.
Всего то нужно из директории фотку закидывать методом sendPhoto
 
  • Спасибо
Реакции: vitashok

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 787
Благодарностей
2 453
Баллы
113
Можно на кубике накидать для наглядности? Ну очень не легко понять чужой код.
Всего то нужно из директории фотку закидывать методом sendPhoto
Вот пример.
На вход требует ЧатИд, БотИд, Путь к изображению.
 

Вложения

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
чет не работает 404 в ответ выдает
http://joxi.ru/5mdML0DFkQgJx2

ответ: {"ok":false,"error_code":404,"description":"Not Found"}
 
  • Спасибо
Реакции: Victorbrin

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 787
Благодарностей
2 453
Баллы
113
{"ok":false,"error_code":404,"description":"Not Found"}
В момент создания шаблона я отправил скриншот в телеграмм. Вот результат:
скриншот.png
Собственно должно работать.
Картинку точно Бот должен отправлять пользователю?
Просто если пользователь-пользователю - то данный шаблон не подойдет...

На скриншоте вижу что БотИд дублируется в запросах (botbot****) - может это приводит к проблеме?
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
ошибка была в этом
string.Format("https://api.telegram.org/bot{0}/sendPhoto?chat_id={1}

вот правильный код
Код:
string strToken = project.Variables["bot_id"].Value;
string strChatId = project.Variables["chat_id"].Value;
string parse_mode = "html";
string img = project.Variables["img"].Value;
string url_bot = string.Format("https://api.telegram.org/{0}/sendPhoto?chat_id={1}", strToken, strChatId);
string temp = CommonCode.SendPhoto(img, url_bot);

спасибо за помощь!
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
Кстати, сразу новый вопрос, а как гифку отправить ? :-)
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 787
Благодарностей
2 453
Баллы
113
ошибка была в этом
string.Format("https://api.telegram.org/bot{0}/sendPhoto?chat_id={1}

вот правильный код
Код:
string strToken = project.Variables["bot_id"].Value;
string strChatId = project.Variables["chat_id"].Value;
string parse_mode = "html";
string img = project.Variables["img"].Value;
string url_bot = string.Format("https://api.telegram.org/{0}/sendPhoto?chat_id={1}", strToken, strChatId);
string temp = CommonCode.SendPhoto(img, url_bot);

спасибо за помощь!
Я номер бота указывал без слова БОТ во входящих настройках.
Собственно и разобрались почему выдавало ошибку - это хорошо.

Кстати, сразу новый вопрос, а как гифку отправить ? :-)
Такое не отправлял :(
 

Emfortes

Client
Регистрация
28.08.2015
Сообщения
29
Благодарностей
20
Баллы
3
Ребят, этот код работает. Спасибо.
Но вот если мы возвращаем результат работы сниппета в переменную, то получается просто "Ок".
Как сделать, чтобы он возвращал json с сервера с информацией о созданном посте?
 

Emfortes

Client
Регистрация
28.08.2015
Сообщения
29
Благодарностей
20
Баллы
3
А все. Это делается так. Добавляем в конце кода:
Код:
return temp;
 

Moguai

Client
Регистрация
23.03.2015
Сообщения
26
Благодарностей
16
Баллы
3
Если кому надо, добавил использование прокси. Актуально для заблокированного Телеграм.
Прокси в стандартном для Zennoposter формате login:pass@ip:port

Общий код.
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.IO;
using System.Text.RegularExpressions;
using ZennoLab.CommandCenter;
using ZennoLab.InterfacesLibrary;
using ZennoLab.InterfacesLibrary.ProjectModel;
using ZennoLab.InterfacesLibrary.ProjectModel.Collections;
using ZennoLab.InterfacesLibrary.ProjectModel.Enums;
using ZennoLab.Macros;
using Global.ZennoExtensions;
using ZennoLab.Emulation;
using System.Net.Http;

namespace ZennoLab.OwnCode
{
    /// <summary>
    /// A simple class of the common code
    /// </summary>
    public class CommonCode
    {
        /// <summary>
        /// Lock this object to mark part of code for single thread execution
        /// </summary>
        public static object SyncObject = new object();

        // Insert your code here
        public static string SendPhoto (string photo, string url_telegram, string proxy)
        {
          var sBoundary = DateTime.Now.Ticks.ToString("x");
          var contentType = "multipart/form-data";
          string sPostMultiString = "";
          // функция сбора данных
          Func<string, string, string, string> multiFormDataText = delegate(string key, string value, string boundary)
            {
               var output = string.Format("--{0}\r\n", boundary);
               output += string.Format("Content-Disposition: form-data; name=\"{0}\"\r\n\r\n", key);
               output += value + "\r\n";
               return output;
            };
          // функция сбора данных
          Func<string, string, string, string, string, string> multiFormDataFile = delegate(string key, string value, string fileName, string fileType, string boundary)
            {
               var output = string.Format("--{0}\r\n", boundary);
               output += string.Format("Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\n", key, fileName);
               output += string.Format("Content-Type: {0}\r\n\r\n", fileType);
               output += string.Format("{0}\r\n", value);
               return output;
            };
          // другие поля
          sPostMultiString += multiFormDataText("action", "upload", sBoundary);
          // файл
          string pro = proxy;
          var fileInfo = new System.IO.FileInfo(photo);
          sPostMultiString += multiFormDataText("width", fileInfo.Name, sBoundary);
          sPostMultiString += multiFormDataFile("photo", fileInfo.FullName, fileInfo.Name, "image/png", sBoundary);
          var str = ZennoPoster.HttpPost(url_telegram, sPostMultiString, contentType, pro, Cookies: "", AdditionalHeaders: new string[]{""});
          return str;
        }
    }
  
}

Код экшена

Код:
string strToken = project.Variables["bot_id"].Value;
string strChatId = project.Variables["chat_id"].Value;
string parse_mode = "html";
string proxy = project.Variables["proxy"].Value;
string img = project.Variables["img"].Value;
string url_bot = string.Format("https://api.telegram.org/{0}/sendPhoto?chat_id={1}", strToken, strChatId);
string temp = CommonCode.SendPhoto(img, url_bot, proxy);
return temp;
 
  • Спасибо
Реакции: Sanekk и doc

Emfortes

Client
Регистрация
28.08.2015
Сообщения
29
Благодарностей
20
Баллы
3
К сожалению код перестал работать. Может дело в библиотеке или еще в чем либо. Случилось это после обновления зенки до последней версии
Когда пытаюсь отправить картинку, пишет: {"ok":false,"error_code":404,"description":"Not Found: method not found"}
 

Emfortes

Client
Регистрация
28.08.2015
Сообщения
29
Благодарностей
20
Баллы
3
Такие дела)
 

Moguai

Client
Регистрация
23.03.2015
Сообщения
26
Благодарностей
16
Баллы
3
  • Спасибо
Реакции: Emfortes

AZANIR

Client
Регистрация
09.06.2014
Сообщения
405
Благодарностей
198
Баллы
43
а есть без подключения библиотеки ? простым пост запросом ?
 

Laimonas

Client
Регистрация
17.03.2016
Сообщения
5
Благодарностей
18
Баллы
3
Вот пример.
На вход требует ЧатИд, БотИд, Путь к изображению.
отправка документ в Телеграм канал через API

string strToken = project.Variables["bot_id"].Value;
string strChatId = project.Variables["chat_id"].Value;
string parse_mode = "html";
string img = project.Variables["txt"].Value;
string url_bot = string.Format("https://api.telegram.org/bot{0}/sendDocument?chat_id={1}", strToken, strChatId);
string temp = CommonCode.SendDocument(txt, url_bot);

может быть, кто знает, почему он не работает с * .txt файлами?
 

genval6

Новичок
Регистрация
12.02.2018
Сообщения
21
Благодарностей
2
Баллы
3
Код:
string strToken = project.Variables["bot_id"].Value;
string strChatId = project.Variables["chat_id"].Value;
string parse_mode = "html";
string img = project.Variables["img"].Value;
string url_bot = string.Format("https://api.telegram.org/{0}/sendPhoto?chat_id={1}", strToken, strChatId);
string temp = CommonCode.SendPhoto(img, url_bot);
как в такой код добавить caption?
 
  • Спасибо
Реакции: socsecret.ru

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
Это я так понимаю метод поста картинок в чат а как прикрутить картинку к посту, оформить его картинкой? Картинка расположена на внешнем URL, мне надо ее добавить в пост как оформление. Как?
 

russya

Client
Регистрация
08.07.2014
Сообщения
743
Благодарностей
78
Баллы
28
Сделал кто, чтобы в телеграмм отправлять документ?
 

Laimonas

Client
Регистрация
17.03.2016
Сообщения
5
Благодарностей
18
Баллы
3

russya

Client
Регистрация
08.07.2014
Сообщения
743
Благодарностей
78
Баллы
28

russya

Client
Регистрация
08.07.2014
Сообщения
743
Благодарностей
78
Баллы
28

AZANIR

Client
Регистрация
09.06.2014
Сообщения
405
Благодарностей
198
Баллы
43

abcman

Client
Регистрация
13.10.2010
Сообщения
33
Благодарностей
4
Баллы
8
А можно ли все тоже самое сделать просто POST запросом без C#?
 

РусРус

Новичок
Регистрация
03.08.2019
Сообщения
3
Благодарностей
0
Баллы
1
ошибка была в этом
string.Format("https://api.telegram.org/bot{0}/sendPhoto?chat_id={1}

вот правильный код
Код:
string strToken = project.Variables["bot_id"].Value;
string strChatId = project.Variables["chat_id"].Value;
string parse_mode = "html";
string img = project.Variables["img"].Value;
string url_bot = string.Format("https://api.telegram.org/{0}/sendPhoto?chat_id={1}", strToken, strChatId);
string temp = CommonCode.SendPhoto(img, url_bot);

спасибо за помощь!
помогите разобраться как отправить картинку в телеграм, у меня не работает. через post get запрос не отправляет, делаю кубик С#, начинает ругаться на команду sendPhoto
 

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