[[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の読み取り