【GAS】Slack ボットユーザーとしてChannleにメッセージを投稿する

## 目的
GAS でSlack ボットユーザーとしてChannleにメッセージを投稿する

※通知が鳴りません。
※メリットはユーザーとして投稿するため　メッセージを修正できます。
※自分がSlackのオーナーである必要があります。

## 今回参考にさせていただいたサイト
https://qiita.com/mizuki_takahashi/items/3f77c2e5b6142563ce66
ありがとうございました。



## 内容

#### 1．対象のslack App　を指定する
1．ブラウザからslackにログインする
https://slack.com/intl/ja-jp

2．slack APP のページを開く
https://api.slack.com/apps/

3．右上の【Your Apps】 をクリックし、自分の「App Name」　を選択する
![yourapp指定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2640876/64e58f2b-20e7-6226-5a02-00ab0ddb3143.png)

Slack appを作成したことがない場合は下記記事の「Slackアプリの作成」をご参照ください。
【Slack】Bot User OAuth Tokenの取得方法
https://qiita.com/80syokumotsu/items/041e99e99d8ecaa3c42b


#### 2．スコープの権限を追加する
1．【OAuth & Permissions】をクリックする
![oauth.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2640876/3f55cade-4988-8e65-2981-f0574c3baa32.png)

2．【Scopes】枠の【User Token Scopes】配下の「Add an OAuth Scope」をクリックする
![user6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2640876/35d13d95-f56d-352b-0e87-d3c986e1d3e4.png)

3．プルダウンから 「chat:write」 の権限を追加する
![user7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2640876/96ba5c2d-245f-8417-fe83-ff60b7606427.png)
追加する権限 [chat:write]

3．権限が追加されたことを確認する
![user9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2640876/b9193a33-1d99-1a92-71d2-36b05aab48a1.png)




#### 3．アプリ更新
画面上部にメッセージが表示されるので 「reinstall your app」　をクリックする

![user13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2640876/55f5d68b-ec9a-f436-07be-fddcc4703663.png)


#### 4．Googleの許可
「許可する」を選択します

![google許可.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2640876/03be7a0f-94c5-19c5-5ce8-5c5f1dc6fac3.png)



#### 5．トークン取得
【OAuth & Permissions】に表示された
User OAuth Tokenを取得する
![user oaht token.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2640876/74236fcb-5118-7bc6-fb84-a3e5ec6a3218.png)


#### 6．ライブラリー追加

※ライブラリとは
GASでは、作成した関数を他のプロジェクトから利用できる仕組みが用意されていて、それをライブラリと言います。
GASからSlackにメッセージ送信するのに便利なライブラリーを利用させていただきます。

1．新しいスプレッドシートを作成する

2．スプレッドシート（右上）の【拡張機能】　→　【App Script】 の順にクリックする

![スプレッドシート　拡張機能　Google App Scrip2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2640876/748f6655-5629-9d8d-367a-60555b4ebbcd.png)

3．GASのスクリプトエディタエディタの画面でライブラリの横にある＋アイコンをクリックする
![ライブラリの追加1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2640876/6f2ef503-81bb-30d9-5f7c-0d2778429043.png)


4．ライブラリの追加画面で、スクリプトIDの入力欄にSlackAppのスクリプトIDを入力し、「検索」ボタンをクリックする
SlackAppのスクリプトID：1on93YOYfSmV92R5q59NpKmsyWIQD8qnoLYk-gkQBI92C58SPyA2x1-bq
![ライブラリの追加２.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2640876/a0df3b35-7fc4-c303-3068-c830bfa7ae76.png)


5．IDが「SlackApp」になっていることを確認し、バージョンも最も大きい数字のものにして「追加」ボタンをクリックする
![ライブラリの追加3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2640876/22a4c7d8-14f9-d2b9-cdeb-e05bc3dd9c2b.png)


6．GASのスクリプトエディタのライブラリの下に「SlackApp」が追加されていることを確認する
![ライブラリの追加4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2640876/aae1aed7-043e-dcd2-a37d-5ab1c6fe6e5d.png)


#### 7．Slackの対象Channelに作成したボットを追加する

1．メッセージを送信したいSlackのChannelを開く
![ボットをchannelに登録1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2640876/ef39a43f-350a-3995-acde-2d7b0fa21fde.png)


2．左上のChannel名をクリックする
![ボットをchannelに登録2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2640876/720245ea-18f1-254e-0bf6-86c5f0c4b5cf.png)


3．インテグレーション　タブを開く

![ボットをchannelに登録3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2640876/852bc7d5-6501-f65c-87d6-d4cff11ae6c4.png)


4．「アプリを追加する」　をクリックする
![ボットをchannelに登録4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2640876/54a96b98-9de8-4404-d234-0da39ad4ef83.png)

5．作成したボット名の横の「追加」をクリックする
![ボットをchannelに登録5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2640876/d5b7d0a5-9267-80ae-1d49-5f65651f0a42.png)

6．メンバーを追加したい場合は、再度　channel名をクリックし「メンバー」タブを開く
![ボットをchannelに登録6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2640876/fcae7b99-5812-f5ad-3dcd-b00d47cb6fb9.png)


7．対象メンバーを検索し追加する
![ボットをchannelに登録7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2640876/3b8b521d-1fb7-6ac2-a993-acbbe981d92b.png)





#### 8．コード作成
1．トークン指定のGAS作成

```javascript

function SetScriptProperty() {
  PropertiesService.getScriptProperties().setProperty('token', 'ここにAPIトークンを入力してください');

}
```


2．Slackへ通知するGAS作成

 var options = {
    as_user: true
  }
as_user: true にするとユーザーとしてつぶやけます。


```javascript

//指定したチャンネルにボットユーザーとしてSlack に通知する

function SlackPostMessage() {

  const user_token = PropertiesService.getScriptProperties().getProperty("token");

  var slackApp = SlackApp.create(user_token);
  var channelId = "チャンネルID"
  var message = "Hellow slack";

  var options = {
    as_user: true
  }
  slackApp.postMessage(channelId, message, options);


}
```


#### 9．実行

slackユーザーとしてメッセージを通知できたことを確認