Slack公式アプリで直接DM画面が開けるように:URLスキームで起動するまでの手順

  • 6
    Like
  • 0
    Comment

2016年8月からSlackがURLスキームに対応しました。
slack://open
とすることで、Slackのアプリケーションを直接開けます。

しかし、各ユーザー、Channelへのリンクについては一工夫が必要です。
解説ドキュメントによれば、
例えばダイレクトメッセージの画面を開くには、
slack://user?team={TEAM_ID}&id={USER_ID}
と名前ではなく内部idを利用する必要があるためです。
このidはSlackのAPIを使わない限り取得は困難なため、
手順を解説します。

以下、ダイレクトメッセージの場合です。

1. テスト用API Tokenの取得

すでにSlackのAPI Tokenを取得していればこの手順は不要です。

SlackのAPIを実行できるよう、テスト用のtokenを取得します。
このページから生成できます。
このtokenはあくまでSlack APIのテスト向けのため、botなどの本番運用に使いまわすことは避けたほうがよいです。

2. APIでUSER_IDとTEAM_IDを取得

自分自身の場合

以下のURLから取得できます
https://slack.com/api/auth.test?token=your_token

ブラウザ上でSlackにログインしている場合は、
auth.test APIのテスト画面からも取得できます。

他人の場合

DM送受信済みの場合、yourteam/direct-messagesのDMアーカイブからidを取得することができます。

APIを利用するなら以下のURLから全ユーザーの情報を取得できます。そこから絞り込んでください。
https://slack.com/api/users.list?token=your_token

ブラウザ上でSlackにログインしている場合は、
users.list APIのテスト画面からも取得できます。

3. URL Schemeを組み立てる

slack://user?team={TEAM_ID}&id={USER_ID}
{}は実際のURLには不要です。念のため。

なお、ダイレクトメッセージ画面以外の画面を開いたり、検索結果を直接開いたりすることもできます。
解説ドキュメントと、API一覧をうまく利用してください。