Telegram APIでUbuntu BashからcurlコマンドでTelegramにメッセージを送信する

    >


telegram、便利ですよね。
僕は使い始めて半年くらいになりますが、もうLINEには戻れないかなぁ。
もともとセキュリティ意識してLINEから移行したんですが、APIは簡単だしグループ招待も楽だし、一番のLINEとの差はやはり、複数端末での使用。
LINE使ってる人はわかると思うけど、複数のスマホやパソコンでログインってのがそもそもできないのがLINEクオリティ。

と、いうことでtelegramのAPIの始め方です。

参考文献:Telegram API: Send Message – Personal Notification Bot – ShellHacks

telegramのAPIの作成はちょっと特殊で、telegramクライアントを開いて、チャット形式でbotを作成します。
誰とチャットするのか。他にもあるようですが今回はこれを使います。

Telegram: Contact @BotFather

友だち追加してトークをはじめましょう。

https://yuis.xsrv.jp/images/ss/ShareX_ScreenShot_527ccb50-14eb-4b99-a6b6-9574fbf161f0.png

では、以下のようにチャットを進めてみてください。

Fumiya I, [16.12.18 09:27]
/newbot
BotFather, [16.12.18 09:27]
Alright, a new bot. How are we going to call it? Please choose a name for your bot.
Fumiya I, [16.12.18 09:28]
testbot
BotFather, [16.12.18 09:28]
Good. Now let's choose a username for your bot. It must end in `bot`. Like this, for example: TetrisBot or tetris_bot.
Fumiya I, [16.12.18 09:28]
testbot_bot
BotFather, [16.12.18 09:28]
Sorry, this username is already taken. Please try something different.
Fumiya I, [16.12.18 09:29]
yuis_testbot_bot

/newbot … botの作成
testbot … botの名前
yuis_testbot_bot … botのURL(ID)

そうすると、

Done! Congratulations on your new bot. You will find it at t.me/yuis_testbot_bot. You can now add a description, about section and profile picture for your bot, see /help for a list of commands. By the way, when you've finished creating your cool bot, ping our Bot Support if you want a better username for it. Just make sure the bot is fully operational before you do this.

Use this token to access the HTTP API:
696443...VxqS5DB7T4

For a description of the Bot API, see this page: https://core.telegram.org/bots/api

といったメッセージにて、トークンを教えてくれます。

それともうひとつ、チャット室も教えてくれます。: t.me/yuis_testbot_bot

では、t.me/yuis_testbot_botをクリックしてチャットを開始します。/startをしてから、以下コマンド。(<TOKEN>を置き換え)

https://api.telegram.org/bot<TOKEN>/getUpdates

すると、以下のようなレスポンスが帰ってきます。(注意:チャットルームを開いていない状態でURLにアクセスすると正しいレスポンスが届きません。)

{"ok":true,"result":[{"update_id":,
"message":{"message_id":3,"from":{"id":638...737,"is_bot":false,"first_name":"Fumiya","last_..."text":"/start","entities":[{"offset":0,"length":6,"type":"bot_command"}]}}]}

"id":638...737がchatIDです。

では改めて、以下のようなコマンドを実行してみましょう。

curl -s -X POST https://api.telegram.org/bot<TOKEN>/sendMessage -d chat_id=<CHAT_ID> -d text="Hello World"

e.g.

curl -s -X POST https://api.telegram.org/bot6964439...lVxqS5DB7T4/sendMessage -d chat_id=63...737 -d text="Hello World"

“Hello World”というメッセージでチャットが届いたかと思います。簡単でしたね。

telegramを一度閉じたりしてもチャットルームを削除しない限り先程のコマンドでメッセージが届きます。
スマホにもtelegramを入れている場合、自動で同様のメッセージが届きます。

GoogleAppsScriptでLINEに送ったりしてたんですが、それを代わりにtelegramにしようと考えたのがきっかけです。
GAS便利なのでGAS記事近い内にまた書くかもしれないですね。




お困りですか?この記事で紹介していることをマンツーマンで指導、解説、代行します。まずはお気軽にお問い合わせください。


Close Menu