LoginSignup
4
7

More than 5 years have passed since last update.

Slackのカスタム絵文字をLINEスタンプ風に表示するbotを作った

Posted at

Slackのカスタム絵文字をLINEスタンプ風に表示してほしいという要望があったので作成してみた。

下記の記事を参考にしてGoogleAppsScriptで実装しました。
Slackのemojiをデカくする

処理の流れ

SlackではSlash commandsを自分で作ることができます。
https://api.slack.com/slash-commands

これを使って「/stamp :custom_emoji:」と入力されたら、GAS側はdoPostでコマンドを受け取りその絵文字の元々の画像をポストするようにします。
GASをウェブアプリケーションとして公開し匿名ユーザーを含む誰でもアクセス可能にしておきます。

GAS側の処理としては、

  1. 絵文字を探す
  2. 投稿元のチャンネルとユーザー情報(名前とアイコン)を取得する
  3. 上記情報を使ってチャンネルにPostする

という流れになります。

また、GASでのslackに関する処理はほとんど下記のライブラリでできます(いつもお世話になっております)
Slack BotをGASでいい感じで書くためのライブラリを作った

アクセストークンについて

アクセストークンはLegacy tokenとOAuth Access Tokenの2種類があります。
取得方法についてはそれぞれ下記の記事が詳しいですが、Legacy TokenはすべてにアクセスできてしまうのでOAuth Access Tokenを使って適切に権限を設定するほうがいいと思います。

なお、今回のソースで使用する権限は下記の3つです。

  • Send messages as slamp_gas(chat:write:bot)
    • チャンネルに投稿する
  • Access the workspace’s emoji(emoji:read)
    • 絵文字の一覧を取得する
  • Access user’s profile and workspace profile fields(users.profile:read)
    • ユーザーのプロフィールを取得する

使い方

元記事の通り、/stamp :custom_emoji:とタイプするとその絵文字の元画像が投稿されます。
/stamp :まで打ってTABキーで補完してくれる他、/stampまで打って普通に絵文字を選んでもいいです。

ソースとインストール方法

Githubに上げました。
https://github.com/iteduki/slamp_gas

4
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
7