突然感覺把 telegram 的群組當成自己的記事本很不錯,可以隨時紀錄在網路上看到的技術文件,就算日後要翻找也方便。(不過 telegram 不能自己組群組,一定要加入一位好友,所以我跟家人借了一個手機號碼,多申請了一個帳號,這樣測試程式也方便XD)
Line 也可以自己組一個群組,做同樣的事情,差異在:如果日後想把這個群組分享給朋友,後面加入的朋友會看不到前面的資料。
記錄生活及學習的日誌
突然感覺把 telegram 的群組當成自己的記事本很不錯,可以隨時紀錄在網路上看到的技術文件,就算日後要翻找也方便。(不過 telegram 不能自己組群組,一定要加入一位好友,所以我跟家人借了一個手機號碼,多申請了一個帳號,這樣測試程式也方便XD)
Line 也可以自己組一個群組,做同樣的事情,差異在:如果日後想把這個群組分享給朋友,後面加入的朋友會看不到前面的資料。
private static readonly Telegram.Bot.TelegramBotClient tg = new Telegram.Bot.TelegramBotClient(apiToken); private async void butBot_Click(object sender, EventArgs e) { tc.OnMessage += Tc_MessageReceived; tc.StartReceiving(); } private void Tc_MessageReceived(object sendor, Telegram.Bot.Args.MessageEventArgs e) { // 機器人收到什麼訊息,就在訊息前面加上「你剛才說:」,然後回傳 tg.SendTextMessageAsync(e.Message.Chat.Id, "你剛才說:" + e.Message.Text); // 機器人如果收到「/早安」或「/你好嗎?」這兩個訊息,則會回傳相對應的訊息;如果收到其他訊息,則回傳列出可以回答的選項 /*if (e.Message.Type == Telegram.Bot.Types.Enums.MessageType.Text) { if (e.Message.Text == "/你好嗎?") tg.SendTextMessageAsync(e.Message.Chat.Id, "我很好,謝謝你!你呢?"); else if (e.Message.Text == "/早安") tg.SendTextMessageAsync(e.Message.Chat.Id, "早安 " + e.Message.Chat.Username); else { tg.SendTextMessageAsync(e.Message.Chat.Id, @"Usage : /你好嗎? /早安 "); } }*/ }
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; }
{"ok":true,"result":[]}
{"ok":true,"result":[{"update_id":720650387, "channel_post":{"message_id":22,"chat":{"id":-123456789,"title":"頻道名稱","username":"機器人名稱","type":"channel"},"date":1582014900,"text":"Hello World"}}]}
排序後如下:
{
"ok":true,
"result":[
{
"update_id":720650387,
"channel_post":
{
"message_id":22,
"chat":
{
"id":-123456789,
"title":"頻道名稱",
"username":"機器人名稱",
"type":"channel"
},
"date":1582014900,
"text":"Hello World"
}
}]
}
因為 Telegram Bot 不能直接私訊給使用者,所以必須透過頻道( Channel)來廣播。不過在頻道中,使用者無法傳訊息的 Telegram Bot ,只能單向的接收 Telegram Bot 廣播的訊息。
要先申請 Telegram 帳號,才可以申請 bot 帳號。
Telegram bot 有兩種,一種是可以對談的機器人,一種是像廣播電台的那種廣播頻道。
對談的機器人就跟 Line Bot 一樣,一來一往的交談,而這樣的交談內容也是根據資料庫而來。
廣播頻道則是只有頻道的管理者可以一直傳送(廣播)資訊,頻道中的成員只能接收,不能發出訊息。
要怎麼建立 Telegram Bot 呢?我個人覺得 Telegram 建立 Bot 的方式很特別,在 Telegram 中搜尋另一個機器人(@BotFather),透過這個機器人來建立使用者的機器人,酷吧!
首先,透過搜尋功能找到 @BotFather
找到之後就可以跟他對談,點選BotFather之後,會看到:
按下開始,@BotFather 會列出交談對話內容,
對 @BotFather 輸入「/newbot」後,@BotFather 會回問 Bot 的名稱,以及 bot 的 username,需要注意的是 username 必須以 bot 結尾,例如:abcbot 或是 abc_bot,用來區分 bot 和一般的帳號。
以上步驟如果遇到重複的名稱或是 username,@BotFather 都會回復要求重新輸入,直到使用者放棄或是成功輸入正確的資料。
當成功建立後,@BotFather 會給予一個 token (如下圖紅色框),格式會類似123456:ABC123fgsdflgkjk,如此便可使用此 token 透過 HTTPS 發送 Request。
Telegram 是做什麼用的?他跟 Line 一樣,都是通訊軟體,可以傳文字、圖片、表情符號、檔案等等,簡單來說,他就跟 Line 一樣。不過,據說三月份開始 Line 的 Line@的費用要增加了,所以許多 Line@ 的使用者(店家),轉而使用 Telegram 。
步驟一:
下載Telegram App
( 一開始是英文,後面可以直接改成中文,請先下載英文版 )
安卓手機下載網址
https://telegram.org/dl/android
蘋果手機下載網址
https://telegram.org/dl/ios
步驟二:
輸入電話號碼來註冊,透過簡訊輸入驗證碼。
輸入之後會有一通來自國外的電話(我分別測試了安卓和蘋果手機,只有安卓手機有接到電話,蘋果手機沒有),無需接通,填好驗證碼可進行下一步驟。
步驟三:
註冊完畢後,點擊下方連結就可以中文化Telegram。
https://t.me/setlanguage/taiwan