はじめに LINE Notifyの開発をしている渡辺です。開発者向けにLINE Notifyを使ってコマンドラインからメッセージを送るという方法を紹介いたします。 これまでシステム的にLINEにメッセージを送るためにはBot API TrialまたはBusiness Connectを使用する必要がありました。これらの機能はMessaging APIとしてより洗練されましたが、Messaging APIは高機能な一方で、API呼び出しのためには多少高度な実装が必要になります。 LINE Notifyではメッセージ送信に機能を絞り、極めて短いステップでLINEにメッセージを送れるAPIを用意しています。 curl を使ってメッセージを送ってみる LINE Notifyで発行できる「パーソナルアクセストークン」を使い、APIのエンドポイントにHTTP POSTリクエストを送るだけでメッセージを送ることができます。HTTPリクエストができればどんな方法でも使うことができますが、ここではコマンドラインで使えるHTTPクライアントであるcurlを使ってみることにします。 パーソナルアクセストークンを発行する LINE Notifyのマイページ(LINE IDでのログインが必要)にアクセスすると「トークンを発行する」ボタンがあります。 これをクリックすると、トークン名と、このトークンを使った場合のメッセージの通知先を選択する画面が現れます。 トークン名は任意の分かりやすい名前を入力しておきます。通知先に1:1を選択した場合には、LINE Notify公式アカウントとのトークにメッセージが送信されます。トークルームを選択した場合には、そのトークルームにLINE Notify公式アカウントからメッセージが送信されます。 通知先はトークンごとに変えることができます。別々のトークルームにメッセージを投稿したい場合にはそれぞれでトークンを発行できます。 ここで発行したアクセストークンは一度しか表示されないので、どこかにメモしておきます。といっても、わからなくなってしまったら、削除して発行しなおせばいいだけです。 通知を送ってみる 取得したパーソナルアクセストークンでLINEにメッセージを送ってみます。curlコマンドを以下のように呼ぶことで、メッセージの送信ができます。[access_token]の部分を取得したパーソナルアクセストークンに置き換えてください。 curl -X POST -H 'Authorization: Bearer [access_token]' -F 'message=foobar' https:// notify-api.line.me/api/notify -X はリクエストメソッドの指定 -H はリクエストヘッダの指定 -F はフォームデータの送信 となっています。URLはLINE Notifyの通知用エンドポイントです。 以上のようにとても簡単です。 応用例 curlで簡単に送れることはお分かりいただけたかと思います。ここから少し応用例を紹介します。 例1: Jenkinsのビルド結果を送る Jenkinsのビルド結果をLINEに通知してみる例を紹介します。 せっかくですので、Jenkins2.0から正式に導入されたJenkinsfileを使ってみます。以下のようなspecで作ってみましょう。 1.Jenkinsのビルド結果を、以下の形式で送ります。 Build {branch}, result is {result}. {buildUrl} 2.また、もしもビルド結果が失敗だった場合はムーンが小馬鹿にしてくる画像を送ってみます(実際にこのような画像を送ることはやめましょう…今回の例は、あくまでジョークです)。 すごくシンプルなJenkinsfileにはなりますが、このように書けば実現することができます(今回はJava projectを想定しているので、gradleでビルドとテストの実行をしています)。 #!groovy node { try { stage 'Checkout' checkout scm stage 'Build and test' sh './gradlew clean check' currentBuild.result = 'SUCCESS' } catch (err) { currentBuild.result = 'FAILURE' } stage 'Notify' notifyLINE('YOUR_LINE_NOTIFY_TOKEN', currentBuild.result) } def notifyLINE(token, result) { def isFailure = result == 'FAILURE' def url (…)
↧