[[Slack Web API]]を使ってみた。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://api.slack.com/img/logos/favicon.ico" />
<span class="link-card-v2-site-name">api.slack.com</span>
</div>
<div class="link-card-v2-title">
Slack platform overview | Slack Developer Docs
</div>
<div class="link-card-v2-content">
To jump straight into developing your own Slack app, follow our Quickstart. You can get started right now.
</div>
<a href="https://api.slack.com/tutorials/tracks/getting-a-token"></a>
</div>
## [[Slackアプリ]]の作成
1. [Customize your workspace \| Slack](https://api.slack.com/)の `Create an app`ボタンを押す
2. `From scratch`を選ぶ
3. `App Name`とworkspaceを決めて`Create App`を押す
参考: [[Slackアプリを作成]]
## スコープの作成
1. 作成したアプリの`Basic Information`へ
2. `Add features and functionality`の`Permissions`を開く
3. `Scopes`の`Bot Token Scopes`または`User Token Scopes`で`Add an OAuth Scope`をクリック
4. 任意のスコープを追加する
`conversations.connect:read`を設定した例。
![[Pasted image 20220326165153.png]]
## トークンの取得
まずはAppのインストールが必要。同じページ内の`Install to Workspace`をクリックし、`Allow`をクリック。
成功したら、`OAuth Tokens for Your Workspace`からトークンを取得する。
> [!warning]
> OAuth Tokenは安全に管理すること。漏洩すると、攻撃者はScopeで設定された権限相当の操作をできてしまう。
以下のAPIで結果が返却されればOK。
```bash
curl "https://slack.com/api/conversations.list?pretty=1" \
-H "Authorization: Bearer <トークン>"
```
> [!info]
> 上記APIの返却には以下のScopeが必要。
> - `channels:read`: public channelsの読み取り
> - `groups:read`: private channelsの読み取り
> - `im:read`: 個人DMの読み取り
> - `mpim:read`: グループDMの読み取り