とっても簡単 Slack API ～ノンプログラミングで試す～


# 概要

- SlackのWeb APIベースの**[Slack API](https://api.slack.com/methods)**へのアクセス方法を説明します。
- ここでは、[ユーザープロファイルの取得API](https://api.slack.com/methods/users.profile.get)を題材に説明しますが、他のAPIの呼び出し方もすべて同じです。
- ノンプログラミングでブラウザからすぐに呼び出して試せます。

# Slack Appの作成

これからSlack Appを作成していく
まず https://api.slack.com/apps/new にアクセスする

![image.png](https://qiita-image-store.s3.amazonaws.com/0/170905/08ffacf6-694f-575b-9a22-9f8a8d669e71.png)

App Name（アプリ名）とWorkspace（ワークスペース）を聞いてくるので、アプリ名を**testapp**とした。ワークスペースには、アプリをインストールするワークスペースを選択(※)する。

※たいていは自分が所属する組織で１つのワークスペースを使っているとおもうが、複数のワークスペースに所属している場合は複数の中から選択する。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/170905/a00ab489-9ddf-dfcf-fb23-e26cd08b3b45.png)

入力したら[**Create App**]を押す。

# OAuth Tokenの作成

次に**OAuth Token**を作成する。

**Create App**をすると、こんな感じの画面がでている。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/170905/5afe210e-03b8-b4cb-e019-00c124f04523.png)

左ペインにある**OAuth & Permissions**を押す。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/170905/9d085d1e-6e9c-ed67-e3e7-b7446e5678d0.png)

この画面を下の方にスクロールしていくと↓のように**Select Permission Scopes**という画面がでてくる。ここで、このSlack App(**testapp**)がどのようなScope(アクセス許可のスコープ)を持つかを指定する。

今回はこのSlack AppからSlackのユーザーのプロファイルにアクセスしたい[**user.profile:read**](https://api.slack.com/scopes/users.profile:read)というScopeを指定する。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/170905/e0698476-be3e-53eb-fcc6-19aa491b344b.png)

Scopeを入力すると↑のように補間されるので便利。

**user.profile:read**を選択したら、**[Save Changes]**を押す。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/170905/9d24c225-2796-f312-2302-a5e996004253.png)

# Slack Appをワークスペースにインストールする

さて、Slack App(**testapp**)へのScopeの登録も終了したので、これをワークスペースで使えるようにする。
**OAuth & Permissions**画面の一番上にある**[Install App to Workspace]**を押す。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/170905/56085dd6-e3c5-0172-785a-fbd6b59f7e5f.png)

すると、以下のように OAuthの確認画面が出てくる。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/170905/e723d091-fd16-aff0-9dc8-cc4cfb27f131.png)

**[許可する]**を押すと、↓のように **OAuth Access Token**が生成される。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/170905/cd3b941b-82fb-a686-cb49-0fa8540e8b8d.png)

あとはここで生成された**OAuth Access Token**を使って **[Slack API](https://api.slack.com/methods)** にアクセスできる。

早速 Web APIにアクセスしてみる。Profileを取得する Web APIのURLは https://api.slack.com/methods/users.profile.get に示してあるとおり、
**	https://slack.com/api/users.profile.get**となるので、ここにさきほど生成した **OAuth Access Token**(xop-xxxxxxxxxxxxxxxxxxxxxの形式)を付与してアクセスする。

ブラウザのアドレス入力エリアに**	https://slack.com/api/users.profile.get?token=xop-xxxxxxxxxxxxxxxxxxxxx**を入力してアクセスしてみる。

無事、アクセスに成功した。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/170905/23ec9399-2b5a-cd62-dffc-c352b51ef4bc.png)

# まとめ

- Slack Appを作ってOAuth TokenをつかってSlack APIを呼び出す方法を説明しました


# あと書き

## Slack Bot と Slack Appは何が違うのか？

以前からSlackを使っている人ほど混乱しそうなのでメモを残しておきます。

ユーザーとインタラクティブなやりとりをするという意味での**Slack Bot**は**Slack App**の一部です。

Slack Botのイメージは↓のsmilebotみたいな存在ですが、このBotは**Slack App**の中から**Bot User**として作成することができます。

![bot?](https://camo.qiitausercontent.com/9fb387aded733dd5e0f4e562db7519b070f4d9d7/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3137303930352f32333433663963382d363835322d373232352d613133642d6532623031306238656662632e706e67)

以前は、Custom Integration(カスタムインテグレーション)といって、**Slack App**を作らずに、単体で**Bot**を作っていましたが、今はSlack Appの一部としてBot Userを作るのが推奨のアプローチになりました。