LoginSignup
3
4

More than 1 year has passed since last update.

GASでSlack APIを利用する場合

Last updated at Posted at 2021-12-16

GASでSlack APIを利用する際に感じた事をメモがわりに記事として残しておこうと思います。
あくまで個人的な見解なので、絶対ではありません。

Slack APIは、以下のサイトで登録やスコープの設定を行って下さい。
また、各APIの説明なども下記で得られます。
Slack API

Slack APIライブラリを使用しない方が良いかも

GASでSlack APIを使用する際に、【2021年版】GASとSlack APIでボットを作成しチャンネルにメッセージを自動投稿する方法で紹介しているライブラリやsoundTricker/SlackAppなどがあります。
ですが、2021/12/16現在最新のAPIに対応されて無かったり、廃止されたAPIが残っていたりという状態です。
最初はライブラリがあるならと使用しましたが、上記の理由により断念しました。
個人的に、ライブラリで使えないAPIを、自前でUrl Fetchを利用して実装するなら統一して、Url Fetchを使用した方が精神衛生上良いと感じました。

以下はユーザー情報を取得するAPIをUrl Fetchを使って取得するコードです。
GAS及びJSは勉強中などで、コーティング規約は守れてないかもです...

// SlackUserToken
const userToken = 'ユーザトークン'
// ユーザー情報
const usersInfo = 'https://slack.com/api/users.info'
// slack_idでメンバー情報を取得
// slackId = ユーザーのSlackのID
function getUsersInfo(slackId) {
    let payload = {
        token: userToken,
        user: slackId
    };
    let options = {
        method: 'get',
        payload: payload
    };
    Logger.log(options);
    const respones = UrlFetchApp.fetch(usersInfo, options).getContentText();
    Logger.log(respones);
    let json = null
    // レスポンスをJSONに変換する
    try {
        json = JSON.parse(respones);
    }
    catch (e) {
        Logger.error(e)
        json = null
    }
    return json
}

実際に構築してみて

上記で、Url Fetchを使ってやった方が良いとは書きましたが、やはりオプションやHTTPメソッドなどを細かく書くのはしんどいです。
なので、今後は学習を兼ねて自作でライブラリを作成してみたいと思いました。
使い勝手が良いものが出来たら公開も考えても良いかもです。

3
4
3

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
3
4