仕様や画面は現行バージョンと異なる可能性があります。
Typetalkの最新版についてはこちらからご確認ください。
国産Web API Advent Calendar 2018の14日目の記事になります。
Typetalkにはまとめ機能と呼ばれる便利な機能があります。
チャットは会話のスピードが早く、過去のメッセージを見る必要が出てきた場合は、メッセージ検索などを利用することも多いでしょう。
メッセージ検索ではある程度キーワードを覚えておかないといけないうえ、検索でメッセージがヒットしたとしても、その会話の流れまで追うことは難しいです。
まとめ機能では「#〇〇に関する要望」「#12月14日の作業ログ」「#12月14日定例会議の議事録」のようなタグを付けておくと、後からその一連のメッセージを簡単に読み返すことができます。
まとめについては【会話別まとめ例を紹介】Typetalkまとめ機能をもっと活用しよう!で詳しく解説していますのでぜひご一読ください。今回はこのまとめ機能
をAPIを使って操作してみます。
目次
本稿でやること
macOS上で選択したコード(テキスト)を# スニペット
まとめとして投稿できるようにしてみたいと思います。
事前準備
まとめをWebアプリ側で事前に作成する
まとめはAPIを使って作成することもできますが、今回は事前にWebアプリ側で作成しておきます。まずは適当にメッセージを投稿します。
次にメッセージの左側のチェックボックスを選択し、画面上部の1個のメッセージをまとめに入れる
をクリックします。
まとめ名にスニペット
と入力し、Enterを押します。
メッセージの下に# スニペット
と表示され、まとめに保存されました。
メッセージの下に表示されているまとめをクリックすると、まとめに保存されているメッセージが表示されます。まだ1件しか登録されていません。これからこのまとめにAPIを使ってメッセージを追加するためのクイックアクションを作成していきます。
後ほどAPIで利用するため、まとめを識別するためのまとめID
を取得しておきます。まとめ画面の上部のメニューから、まとめのURLをコピー
をクリックします。
https://typetalk.com/topics/11111/talks/22222
のようなURLがコピーされます。talks/
のあとにある22222
の部分がまとめID
になりますのでメモしておきましょう。
ボットを作成する
次にメッセージを投稿するためのボットを作成します。ボットを作成して Typetalk トークンを取得を参考に以下のようなボットを作成してください。作成後、メッセージの取得と投稿のURL
をコピーしてメモしておいてください。
これで事前準備は完了です。
Automatorで、メッセージの投稿APIを使ったクイックアクションを作成
それでは早速クイックアクションを作成してきます。/Applications/Automator.app
を開き、アプリケーションメニューからファイル > 新規 > クイックアクション
を選択します。
ワークフローが受け取る現在の項目
にテキスト
を選択します。これでmacOS上で選択中のテキストを入力として受け取ることができます。
画面左のライブラリからJavaScriptを実行
と通知を表示
を右側にドラッグします。画像のようになります。
実行するJavaScriptは以下のスクリプトをペーストしてください。1. メッセージの取得と投稿のURL
と2. まとめID
の部分だけはメモしておいた値を設定してください。
function run(input, parameters) { const url = 'https://typetalk.com/api/v1/topics/11111?typetalkToken=0123456789ABCDEFG' //1. メッセージの取得と投稿のURL const talkId = 22222 //2. まとめID app = Application.currentApplication() app.includeStandardAdditions = true const message = "```\n" + "" + input + "\n```" const data = JSON.stringify({ 'message': message, 'talkIds[]': talkId }) const command = `curl -H 'Content-Type: application/json' -d '${data}' '${url}'`; app.doShellScript(command) return input }
ここで利用しているメッセージの投稿APIはメッセージを投稿するためのAPIでmessageプロパティで本文を設定します。更にtalkIds[]
にまとめIDを設定することで、メッセージ投稿と同時にまとめに入れることができます。
Command+SでPost to Typetalk
という名前を付けて保存しましょう。これでクイックアクションの作成が完了しました。
それでは試してみましょう。任意のアプリケーションでテキストを選択して右クリックし、サービス > Post to Typetalk
を選択します。
選択したテキストがTypetalkに投稿され# スニペット
まとめに保存されているはずです。
もう一度まとめのメッセージ一覧を開くと、複数のメッセージが表示されます。クイックアクションが完成したので、メモしたいコードをどんどん選択して追加しましょう。
このようにTypetalkのまとめAPIを活用することで、簡単にスニペットを保存するクイックアクションが作成できました。他にもいろいろな活用方法があると思いますのでぜひみなさんもお試しください。