- 在 Nuget上有些其他開發人員已經整理好的 SDK,我是使用這套:(但沒法擔保這個套件沒有問題,如果要使用,請自行留意)
- 透過 Telegram bot 廣播訊息到 Channel 有兩種方式:WebRequest 及 上述的 SDK 。不管是用什麼方式,皆可以使用 Windows Application 來開發,這也是我覺得很方便的一點。
- 使用 WebRequest 的程式碼如下:
string urlString = "https://api.telegram.org/bot{0}/sendMessage?chat_id={1}&text={2}";
string text = txtMessage.Text;
urlString = String.Format(urlString, apiToken, chatId, text);
// 如果使用的 .net framework 版本是低於 4.6 ,那麼需要加下面這行程式碼,如果高於 4.6 (含4.6),則可以不需要這行,原因可以參考這裡 https://blog.darkthread.net/blog/disable-tls-1-0-issues
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
WebRequest request = WebRequest.Create(urlString);
Stream rs = request.GetResponse().GetResponseStream();
StreamReader reader = new StreamReader(rs);
string line = "";
StringBuilder sb = new StringBuilder();
while (line != null)
{
line = reader.ReadLine();
if (line != null)
sb.Append(line);
}
private static readonly Telegram.Bot.TelegramBotClient tg = new Telegram.Bot.TelegramBotClient(apiToken);
var r = tg.SendTextMessageAsync(chatId, txtMessage.Text).Result;上述是傳送文字的方法,其中使用到的參數 apiToken 、 chatId 皆可使用前面的方法取得,參數的型態都可以宣告為 string 。
private void butSendImage_Click(object sender, EventArgs e)
{
Stream stream = File.OpenRead(txtImagePath.Text);
stream.Position = 0;
var r = tg.SendPhotoAsync(chatId, stream).Result;
}
private void butSendVideo_Click(object sender, EventArgs e)
{
Stream video = File.OpenRead(txtVideoPath.Text);
video.Position = 0;
var r = tg.SendVideoAsync(chatId, video).Result;
}
- C# Windows Application 程式畫面
- C# Windows Application 程式執行結果
Great content! Super high-quality! Keep it up! 🙂
想請問是要新增哪個項目?
然後是直接複製貼上並改api、chatid就能直接出現視窗?
是的,我是這樣做的沒錯。不過已經經過一年了,不知道telegram的規格是否有變
請問是要用哪種專案?
另外有完整程式碼?
我是使用Winform的專案