- Published on
Telegram APIでボットを作成しcurlコマンドでメッセージを送信
- Authors
- Name
- Shou Arisaka / 有坂翔
Telegram APIを使用しボットを作成し、Linuxの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友だち追加してトークをはじめましょう。
では、以下のようにチャットを進めてみてください。
Foobar 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.
Foobar 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.
Foobar I, [16.12.18 09:28]
testbot_bot
BotFather, [16.12.18 09:28]
Sorry, this username is already taken. Please try something different.
Foobar 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":"Foobar","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記事近い内にまた書くかもしれないですね。