Вот пример.Можно на кубике накидать для наглядности? Ну очень не легко понять чужой код.
Всего то нужно из директории фотку закидывать методом sendPhoto
В момент создания шаблона я отправил скриншот в телеграмм. Вот результат:{"ok":false,"error_code":404,"description":"Not Found"}
На скриншоте вижу что БотИд дублируется в запросах (botbot****) - может это приводит к проблеме?
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);
Я номер бота указывал без слова БОТ во входящих настройках.ошибка была в этом
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);
спасибо за помощь!
Такое не отправлялКстати, сразу новый вопрос, а как гифку отправить ?
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;
Специально проверил на 5.17.2.0Такие дела)
отправка документ в Телеграм канал через APIВот пример.
На вход требует ЧатИд, БотИд, Путь к изображению.
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ошибка была в этом
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);
спасибо за помощь!