さぁついに見つけましたよLINE Notify120%活用術。
やっとTaskerでHTTP POSTを使って(IFTTT等を介さず)ダイレクトにLINEに通知を出す方法がわかったのでメモしときます。
必要なアプリと前準備
まずTasker本体が必要です。
TaskerはHTTP POSTを送信できる機能を内蔵していますが、ちょっと使い方がよくわからず、特に今回のような外部のAPIを叩く場合のユースケースを検索してみると結構不評?っぽいため、プラグインも追加します。
フォーラムなどで好評だったのがこちらのプラグインです。
HTTP GET、POST、DELETE、PUTを使用して、RestfulなAPIへのアクセスを代替するインターフェースを提供してくれます(原文翻訳引用)。
必要なアプリはこの2つ。続いて「LINE Notify」を使うためにアクティベーションが必要です。
LINE Notify
WebサービスとLINEを連携する "LINE Notify"
LINE Notifyのホームページを開き、QRコードを読んで「LINE Notify」を友達に登録します。
これで通知の受信準備も完了。
アクセストークンを取得
Taskerを利用してLINE Notifyに通知を送るためには、LINE NotifyのAPIにアクセスする必要があります。
LINE Notifyのマイページを開いて「アクセストークン」を発行します。
発行する時は「トークン名」と「送信先」を指定します。
「トークン名」は送信する通知のタイトルにもなるようなので、わかりやすいものをつけるといいと思います。
ちなみにLINE Notifyは、友だちに追加した公式チャンネルで「自分専用(1:1)」の通知を受け取る他に、自分が参加している「グループ(トークルーム)」に通知を届けることもできます。
その場合、送信したいグループに「LINE Notify」の公式チャンネルを招待する必要があるので、忘れずに行っておいてください。
複数のグループに同時に送ることはできないので、1つずつトークンを発行します。
なお、この画面で「発行する」をクリックするとトークンが表示されますが、一度表示を閉じると再表示する方法はありません。どこかにメモっておくか、忘れてしまったら削除して作り直す必要があります。
今回はTaskerを使うので、トークンをPCで発行したらPushbulletで送っちゃうことをおすすめします。
アプリのインストール、LINE Notifyの友だち追加とグループ招待、トークンの発行まで全て完了したら、Taskerを開きます。
Taskerの設定
※なお、Taskerで使うトリガー(Context)は自分好みに作ればいいので省略します。肝心肝要のアクション(Task)の作り方をまとめます。
Taskを新規作成して+ボタンを押し、「Plugin」から「RESTask」を選びます。
作成したTaskを開いてペンのマークからConfiguration(いわゆるコンフィグ、設定)に入ります。
何やら項目がありますが入力が必要な箇所は少しですので大丈夫。
まず、最初に表示された「BASIC」のすぐ下の「Request Type」を押して「POST」に変更します。これがHTTP POSTリクエストを送信することを意味します。
その下の「Host」にはAPIのURLを入力。
https://notify-api.line.me/api/notify
です。
この2箇所を編集したら、画面を左にスライドして「Headers」項目に移ります。
この画面には最初何も置かれておらず、緑色の+ボタンがあるだけなので、そこをタップ。
このように入力してSaveします。
続いてもう1回緑の+ボタン「Add more」をタップし、
このように入力してSaveします。
作成する2つの項目は次の通り。
1つ目 | 2つ目 | |
---|---|---|
Name | Content-Type | Authorization |
Value | application/x-www-form-urlencoded | Bearer アクセストークン |
※なお2つ目のヘッダー情報について、Value(値)側にはただ単にアクセストークンを貼り付けてもだめです。プレフィックス(接頭辞)に「Bearer」をつけ、半角スペースを1個入れます。
こういう形式。 _ は半角スペースを見やすくしただけなので、実際には使いません。
2つの項目を作成したら、再度画面をスライドさせて「Parameters」項目に移ります。
パラメータの作り方はヘッダーと同じです。
パラメータ |
---|
message |
任意の文字列 |
Nameには「message」と入れます。そしてValueに、通知したいメッセージ本文を入れます。
ここまでで作業は完了。右上の再生ボタンをタップすれば動作テストが行なえます。
実際に送るとこうなります。
発信者が「LINE Notify」になり、メッセージの先頭に「トークン名」がついており、その後ろに今作ったHTTP POSTの「message」パラメータが入っています。
あとはTaskerに戻って、Contextに「モンストを起動した時」を指定すれば、自分がモンストを起動したら自動的にグループに「モンストしようぜ」というメッセージが流れるようにもなると思います。
あまりやりすぎると迷惑になるので、最初は1:1用のトークンを使って動作テストすることを強く推奨します。
以上です!
参考情報
今回の仕組みを作るにあたって参考にさせていただいたサイトを載せておきます。
コマンドラインから LINE にメッセージを送れる LINE Notify " LINE Engineers' Blog
HTTP POSTリクエストを送ることでLINE Notifyが使える、という、貴重な情報を発見したのはこのブログでした。Thanks!!
それと、LINE Notifyの開発ドキュメントにHTTP POSTリクエスト時に使用する各種パラメータの詳細が載っていました。
3ページ目から4ページ目にかけての、「通知系」項目のPOST欄のパラメータを使用します。
そんな感じ!
先日はコメントありがとうございました。
設定を見直したところ、RESTask for Taskerにバックグラウンドで動作をする許可をうまく与えられてなかったようで動作していなかったようでした。
ご提案のおかげでうまくいき感謝しております。本当にありがとうございました。
お役に立てたようでよかったです(^^
お返事ありがとうございます。
(すぐにお返事して頂いたのにお礼が遅くなり申し訳ありません。)
ご紹介頂いたポストを参考にもう一度設定を見直させて頂きます。
tasker初心者です。
ブログを参考にしながら設定したら通知LINEが送ることができて感動しました。(帰宅通知が自動化できました。)
ただ、しばらくすると通知が送られなくなりました。Configurationを何もせず再保存すると通知は送られるのですが…
何か心当たりがあればご教示いただけますと幸いです…
コメントありがとうございます。
症状から推測する限りだと、TaskerがCpontextをトリガーしていないんじゃないかな?と思います。
状況がよくわからないのであくまでも推測ですが、
・Taskerがバックグラウンドで動作できるようになっていない
・Taskerに必要な権限を渡していない
・設定したContextの条件を満たしていない
ようなかたちで、レシピそのものが動いていないのではないかと思います。
このブログではTaskの作り方のみを紹介していますが、他のポストでContextの作り方も書いたことがありますので、よければご覧ください。
https://tomandroid.com/tag/tasker/
先日Taskerに初めて触れ、どうにかしてLineと連携できないか?と考え、ここに辿り着きました。
本当に素晴らしい!私のやりたいことが出来ました。
ありがとうございます。
ありがとうございます(^^