みなくんの日記

やる気が皆無で自由気ままに生きてる人のブログ

Twitter依存な私はタスクもリプで教えてもらう

目次

背景

  • とにかく面倒臭がり
  • 忘れっぽい
    こんな性格の男が悩んでいることが一つある。それは「タスク管理が面倒すぎる(タスクを確認することすら忘れる)」ということ。
    もっと簡単に予定やタスクが追加できて、しかも向こうから「今日これがあるよ!」と通知してくれればよいのに。
    そこで、今回自分の愛用ツールをうまく利用したら便利にならないかと考え、こんなアイデアが浮かんだわけです。 「そうだ、Twitterで全部管理できたら楽じゃん!」と。
    目次に戻る

ゴール

  • Twitterでツイートした特定の内容を、明日リプで通知してもらう
  • Google home くんに「明日は~がある」と言えば、明日リプで通知してくれる
    目次に戻る

    なぜTwitterなのか

    LINEでもいいじゃないか、LINEならIFTTTのNotifyで通知できるわけだし。
    わかる。でもTwitterの方が開くから目につきやすいんだよ。だから私はTwitterがいい。
    目次に戻る

Twitterでタスク管理を行う

  • Twitterでツイートした特定の内容を、明日リプで通知してもらう

    理想

    今日:「#明日通知して 図書館の本を返す」とツイート(タスク追加)
    明日:「今日のタスク: 図書館の本を返す」とリプが飛んでくる(本日のタスクを通知)
    目次に戻る

    実装に使うもの

  • IFTTT (一番使うもの)
  • Twitterアカウント2つ (リプを送ってくれる奴、リプを受け取る奴)
  • Googleカレンダー (タスク管理に使う)
    目次に戻る

    実装してみよう

    この機能を実現するには、以下のような動きをする必要があるわけですね。

  • まずツイートを検知(#(ハッシュタグ)がキーワード)
  • ツイート内容をタスクとして保存(カレンダーに登録する)
  • 指定日時になったらリプを飛ばしてもらう (カレンダーから情報取得)

    なぜカレンダーでタスク管理をするのか。それは簡単で、IFTTTならGoogle カレンダーを使うと「いつイベントが始まるか」というのを指定でき、イベント開始時にその情報を用いてリプを飛ばすことが出来るからです。
    他にもいいのがあればそっちを使ったんだろうけど、サーっと調べて簡単だと思ったのがこっちだったので今回はこういう方針で実装することに。
    目次に戻る

    まずはIFTTTの設定を

    さまざまなサービスが連携できる「IFTTT(イフト)」の使い方を参考にサインアップ。使い方もここで学習しました。 IF ●● Then ■■ 「もし●すれば、■をする」という、一連の命令を簡単に作成することができます。例えば、「もし明日が雨なら、LINEに通知する」といった感じに。これはとても直感的にできるので便利ですね。プログラミング不要というのが私にとって嬉しかったです。
    目次に戻る

    TwitterからGoogle カレンダーに

    ここからは実際の画像と共に、具体的な実装を行っていきましょう。 まずはNew Appletから「this」を選択。今回「this」(トリガー)はTwitter、「that」(アクション)はGoogleカレンダーになります。
    thisでTwitterを選択し、「New tweet by you with hashtag」を選択しましょう。
    これは特定のハッシュタグ付きツイートを自分がしたらそれがトリガーになるというものです。
    まずは「#明日通知して」のタグをトリガーにして、設定しましょう。これでタグ付きツイートが送信されるとこのコマンドが動き出すことになります。

    f:id:minamint:20180214050200p:plain
    特定のハッシュタグをトリガーにすると便利が良い

    次にthatでGoogleカレンダーを選択。時間指定をしたいので、「Create a detailed event」を選択してください。 ずらずらーっと項目が。それぞれ順番に設定していきましょう。

f:id:minamint:20180214050740p:plain

f:id:minamint:20180214050745p:plain
全て英語だけど、調べればある程度分かるので問題はない

  • Which calendar?
    「どのカレンダーに登録するの?」というもの。今回「タスク通知用」というカレンダーを作って登録してますが、実際にこうした方が便利だと思います(本来使ってるGoogleカレンダーが変なメモで汚れないから)。
    カレンダー作成はGoogleカレンダーから直接行ってください。そうすれば選択肢に出てくるはずです。
  • Start time
    開始時刻。この機能が欲しくてGoogleカレンダーを使ったんです。ここに図のように「Tomorrow, 8AM」と入れると、明日の朝8時に予定が入ります。後で通知させるのに重要になります。
  • End time
    終了時刻。ここは別に通知で使わないので適当に1時間後にしましょう。
  • All day?
    そのイベントが終日かどうかを設定。Google homeくんが終日スケジュールを読み上げてくれない事件があったので思わず「No」を選んでしまいました。何となくこれ「Yes」にするとイベント通知来なさそう(未検証)。
  • Title
    ここには「Add ingredient」から「TextNoHashtag」を選択しましょう。これは「ハッシュタグなしの本文」を出すもので、ツイートした内容そのものをタイトルにできるという優れもの。
    「#明日通知して 図書館の本を返す」と通知すれば、タイトル名は「図書館の本を返す」となるわけですね。
    あとの設定は好きなようにして構いません。というのも、通知に影響しないからです。完成したらCreate Actionでアクションを作ります。
    そしてこのIFTTTのアプレットのタイトル名を下図のように好きに弄ってあげれば…
    f:id:minamint:20180214053817p:plain
    セットが完成するわけですね。「On」になっている限りこのアプレットは動作するため、私のツイートを監視してくれていることになります。
    試しに「#明日通知して 家の用事を済ませる」とツイートしてみます。

    f:id:minamint:20180214192420p:plain
    呟いているのが鍵垢故にユーザ名やIDなどは隠しています

    そしてGoogleカレンダーには…
    f:id:minamint:20180214054458p:plain
    オレンジ色のイベントが「タスク通知用」のカレンダー

    きちんと反映されていますね。これでTwitterでタスクを追加することができるようになりました。
    目次に戻る

    GoogleカレンダーからTwitter

    お次は一番大事な「通知してもらう」という機能の実装です。
    「this」(トリガー)はGoogleカレンダー、「that」(アクション)はTwitterになります。さっきと逆ですね。
    Googleカレンダーの設定から。
    いっぱいトリガーの選択肢が出てきますが、「Any event starts」(任意のイベントが開始される時)を選択しましょう。以下の画面が出るはずです。
    f:id:minamint:20180214055336p:plain

  • Which calendar?
    さっきと同様、タスクを入れたところを選択しましょう。

  • Time before event starts
    何分前から通知するか。さっき「朝8時」に開始時刻を設定したので、別に0分でいいでしょう。もっと前にしたかったら最大45分前まで設定できます。
    これでトリガーのセットは完了。次にアクションのTwitterの設定をしましょう。
    アクションの選択肢は最も単純な「Post a tweet」を選択しましょう。
    f:id:minamint:20180214055838p:plain
    @{ユーザ名}にはちゃんとID名を入れましょう

    上図のように設定してあげれば…あとは指定時刻に通知がリプとして来るはずです。確認してみましょう。
    先ほどカレンダーに登録した「家の用事を済ませる」が来るのを確認してもいいんですが…待つのは面倒なので、「タスク通知用」のカレンダーに「テスト通知」という予定を登録して、この通知が来るかを試しましょう。
    f:id:minamint:20180214165715p:plain
    すぐ通知が来るよう、直前でセットしました。この通知が飛んできていることを確認してみます…
    f:id:minamint:20180214170433p:plain
    指定した形式通りに届いていることが確認できる

    ばっちりIFTTTを通じて届いていますね。これで向こうから通知してくれるようになったので、忘れることもなくなりそう!
    目次に戻る

Google homeくんにもタスク管理してもらう

  • Google home くんに「明日は~がある」と言えば、明日リプで通知してくれる

    理想

    私:「ねえ,Google。明日は『テストがある』」
    Google home miniくん:「わかりました。明日は『テストがある』ということをTwitterでお知らせします。」
    目次に戻る

    実装に使うもの

  • IFTTT (一番使うもの)
  • Google assistant (Google home miniくんの中身)
  • Googleカレンダー (タスク追加にはやっぱりこれ)
  • Google home (miniなども含む) (これがないと始まらない)
  • GoogleカレンダーからTwitterにで作成したアプレット 目次に戻る

    実装してみよう

    この機能実現のために必要な動作は以下の通り。

  • Google assistantに「明日は~」というフレーズを認識させる
  • 「(明日は)~」をGoogleカレンダー「タスク通知用」に登録する
  • Google assistantにその行動が完了したことを言わせる
    つまり、Google assistantが私の代わりにカレンダーに予定を入れてくれたらOKというわけです。
    というか、Google homeくんって実はGoogle assistantだったんですね…(今知った)。だから、assistantくんを弄ればGoogle homeくんも反映してくれると。これは使いこなせたらもっと便利になりそうな予感。
    目次に戻る

    Google assistantからGoogleカレンダー

    「this」(トリガー)がGoogle assistant 「that」(アクション)がGoogleカレンダーになります。
    いくつかあるトリガーの中から、「Say a phrase with a text ingredient」(テキストを含むフレーズを言った時)を選択しましょう。以下の項目が出てきます。順に設定していきましょう。
    f:id:minamint:20180214173031p:plain

  • What do you want to say?
    「何と言った時?」ここにはフレーズを入れます。今回認識させたいのは「明日は~」。なので、「明日は $ 」と入れましょう。「$」は予定の内容が入ります。これで音声をテキスト文に認識・変換してくれるわけです。
  • What's another way to say it? (optional)
    「他にどんなこと言ったら反応させようか?」別フレーズを登録したい場合はここに。今回は漢字での「明日は」と、Google homeくんがひらがなで認識したときのことを考えて「あしたは」を別フレーズに設定しています。必要かどうかは分かりません。
  • And another way? (optional)
    「他には?」3フレーズ目を入れたい人はここに。合言葉みたいなフレーズを入れて遊ぶと面白いかもしれない。
  • What do you want the Assistant to say in response?
    Google assistantくんはなんとお返事したら?」言わせたいことをここに。ここで「$」を入れると、自分が言った音声文が読み上げられるので確認しやすいです。
  • Language
    迷わず日本語を選択。
    次にアクション側のGoogleカレンダーの設定…なんですが、実はこれ、Twitterでやった設定(TwitterからGoogle カレンダーに)とほとんど変わらないんです。
    変わるのはTitleの項目だけ。ここで、「Add ingredient」を押して「Text Field」を選択しましょう。これで「$」の内容がタイトル名になります。
    で、設定が終わったら名前を決めて保存するだけ…。これで、Google homeくんに話しかけるとカレンダーに予定を追加してくれるわけです。実際の動作をマイアクティビティの会話履歴とカレンダーを参照して確認してみましょう。(動画は割愛させていただきます)
    f:id:minamint:20180214180406j:plain
    マイアクティビティでGoogle homeくんとの会話履歴が確認できる

    f:id:minamint:20180214180735p:plain
    このように、「(明日は)テストがある」と言うと、「テストがある」という予定が翌朝8時に登録されているのが確認できます。
    目次に戻る

    GoogleカレンダーからTwitter

    Twitterの方のGoogleカレンダーからTwitterにで作成したアプレットをそのまま使いましょう。「タスク通知用」カレンダーに予定を追加さえできれば、あとはこのアプレットが動作して通知してくれるわけですからね。
    これで、Google homeくんに話しかけたらタスクを翌日教えてくれるようになりました!
    目次に戻る

まとめ

ゴールに設定したものはIFTTTを用いることで全て実装でき、その動作も確認することができました。これでTwitterから離れる必要がなくなるし、通知も来るから忘れることもなくなりそう!
IFTTTは今回紹介したもの以外にも、様々なサービスを使ってより便利にすることが出来るので、気になった方は調べてみてください。
目次に戻る

余談

今の所実装したのは明日通知するというものだけ。これを曜日指定で出来たら便利だと思って追加実装をしたんですが…月曜から金曜の5パターンをTwitterGoogle assistantそれぞれに設定する必要があるため、合計10個もアプレットを追加で作る必要があり非常に面倒でした。途中で「こんなことするならタスク管理アプリちゃんと使った方が楽そう」と思ったほどです。もう少し手間を省けないものか…。
それに、IFTTTではまだ「カレンダーの予定を消す・変更する」に対応はしていないらしく、間違えたら手動で修正が必要なんだとか。少し面倒だけど対応してないから仕方ないですね。
でもこういう風に便利にしていくのは好きなので、これからも思いついたらとりあえず実装できないか考えて手を動かしてみようと思います。