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メソッドなどを細かく書くのはしんどいです。
なので、今後は学習を兼ねて自作でライブラリを作成してみたいと思いました。
使い勝手が良いものが出来たら公開も考えても良いかもです。