一群為了自己在乎的城市而做出貢獻的朋友,利用自己空閒的時間,沒有支薪,還自掏腰包,到處在台中豐原介紹當地的美食。
從去年下半年開始,我自學影片的後製,當然也有朋友協助教學,或是在我碰到問題時協助我。
因緣際會下,得知這群朋友正在做這件有意義的事情,所以我自告奮勇向他們提出,可以幫忙影片的後製,一方面可以協助他們,一方面可以有更多練習的機會。

記錄生活及學習的日誌
一群為了自己在乎的城市而做出貢獻的朋友,利用自己空閒的時間,沒有支薪,還自掏腰包,到處在台中豐原介紹當地的美食。
從去年下半年開始,我自學影片的後製,當然也有朋友協助教學,或是在我碰到問題時協助我。
因緣際會下,得知這群朋友正在做這件有意義的事情,所以我自告奮勇向他們提出,可以幫忙影片的後製,一方面可以協助他們,一方面可以有更多練習的機會。
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
研究 tensorflow + pose 中,因為對 python 還不熟(目前也在學習中),所以只能先玩玩 web 版。

無意間發現的直立式滑鼠,好奇之下買來試試。
此款是無線(2.4G)充電式,充電時顯示紅燈,充飽電後顯示綠燈。

還有上一頁、下一頁功能,上方的按鍵是變換DPI(800-1200-1600)。

目前測試的結果是還需要一個滑鼠墊,把手腕處墊高,不然可能手腕還是會有問題。