Skip to content

Commit

Permalink
document: format
Browse files Browse the repository at this point in the history
  • Loading branch information
hi-se committed Jun 21, 2021
1 parent 243f449 commit 3cfcba1
Showing 1 changed file with 34 additions and 34 deletions.
68 changes: 34 additions & 34 deletions readme.md
Expand Up @@ -15,7 +15,7 @@ Google Apps Script で作成している Slack Bot です。

- [ ] 複数チャンネル対応
- [ ] 設定変更と永続化
- [ ] GASプロジェクトの保管場所の指定
- [ ] GAS プロジェクトの保管場所の指定

## 環境構築

Expand All @@ -30,39 +30,39 @@ Google Apps Script で作成している Slack Bot です。

- `yarn clasp login`を実行
- Shujinosuke の GAS プロジェクトにアクセスできるアカウントで[clasp](https://github.com/google/clasp)の設定
- 完全に新しいGASプロジェクトに移行する時は初回のみ以下の操作が必要(更新の場合は不要)
- 完全に新しい GAS プロジェクトに移行する時は初回のみ以下の操作が必要(更新の場合は不要)
- `yarn run buildpush` を実行
- GASエディタを開き( `clasp open` )、 `init` 関数を実行する
- 初回の実行時はGASに権限付与する必要があるので、画面にしたがって権限を付与する
- `init` によってSlackTokenなど必要な情報がGASプロジェクトに登録される
- GAS エディタを開き( `clasp open` )、 `init` 関数を実行する
- 初回の実行時は GAS に権限付与する必要があるので、画面にしたがって権限を付与する
- `init` によって SlackToken など必要な情報が GAS プロジェクトに登録される

### GitHub Secretsの登録
### GitHub Secrets の登録

- GHAでclaspを利用するためにGitHub Secretsに値を設定する
- 2021/06/21時点では `masaya.hirose@siiibo.com` の値が登録されている
- GHA で clasp を利用するために GitHub Secrets に値を設定する
- 2021/06/21 時点では `masaya.hirose@siiibo.com` の値が登録されている
- 設定する値は以下の通り
- claspの設定は `cat ~/.clasprc.json| jq` などを実行すれば出てくる(Macの場合

| KEY | 説明|
|----|----|
|ACCESS_TOKEN | claspの設定 |
|CLIENT_ID|claspの設定 |
|CLIENT_SECRET|claspの設定|
|DEPLOYMENT_ID|claspの設定|
|EXPIRY_DATE|claspの設定|
|ID_TOKEN|claspの設定|
|REFRESH_TOKEN|claspの設定|
|SCRIPT_ID|GASプロジェクトのスクリプトID|
- clasp の設定は `cat ~/.clasprc.json| jq` などを実行すれば出てくる(Mac の場合

| KEY | 説明 |
| ------------- | ------------------------------- |
| ACCESS_TOKEN | clasp の設定 |
| CLIENT_ID | clasp の設定 |
| CLIENT_SECRET | clasp の設定 |
| DEPLOYMENT_ID | clasp の設定 |
| EXPIRY_DATE | clasp の設定 |
| ID_TOKEN | clasp の設定 |
| REFRESH_TOKEN | clasp の設定 |
| SCRIPT_ID | GAS プロジェクトのスクリプト ID |

## 開発

### テスト環境

- テスト環境で開発する場合は `clasp deploy` で新規デプロイを行う
- GASはデプロイの度に新規URLが作成されるので注意
- GAS はデプロイの度に新規 URL が作成されるので注意
- コードを更新することが目的の場合は、新規デプロイではなくデプロイを更新する
- デプロイの更新をするには `clasp deploy -i <deploymentID>` を実行する
- `https://api.slack.com/apps/A0108T7KFV0/event-subscriptions` からGASでデプロイしたWebAppのURL を設定
- `https://api.slack.com/apps/A0108T7KFV0/event-subscriptions` から GAS でデプロイした WebApp の URL を設定
- `https://script.google.com/macros/s/<deploymentID>/exec` のような値
- `https://api.slack.com/apps/A0108T7KFV0/interactive-messages` にも同じ値を設定
- 適当なテストチャンネルに"Shujinosuke"アプリをインストール、もしくはすでにインストール済みのチャンネルで作業
Expand All @@ -78,31 +78,31 @@ Google Apps Script で作成している Slack Bot です。

## 補足

### TypeScriptを使ってローカルでGASの開発を行う方法
### TypeScript を使ってローカルで GAS の開発を行う方法

- GASはデフォルトではファイルモジュールがサポートされていない
- GAS はデフォルトではファイルモジュールがサポートされていない
- ファイルを分割していてもグローバルスコープとなる
- ファイルモジュールが必要ない場合は `clasp` を利用するとTS→JSへのコンパイルを自動で行ってくれる
- ファイルモジュールを扱うにはローカルで設定する必要があり、Shujinosukeは `webpack` を利用することで実現している
- ファイルモジュールが必要ない場合は `clasp` を利用すると TS→JS へのコンパイルを自動で行ってくれる
- ファイルモジュールを扱うにはローカルで設定する必要があり、Shujinosuke は `webpack` を利用することで実現している
- 関連する設定ファイルは
- [webpack.config.js](webpack.config.js)
- [tsconfig.json](tsconfig.json)
- デプロイまでの流れは以下の通り
- `webpack` でビルド
- `clasp push` でコードをGAS環境にpush
- `clasp push` でコードを GAS 環境に push
- `clasp deploy -i <deploymentID>` でデプロイの更新
- GASプロジェクトをローカルで管理する場合、以下の2つのファイルが必要
- GAS プロジェクトをローカルで管理する場合、以下の2つのファイルが必要
- [.clasp.json](.clasp.json)
- `clasp` でpushやdeployする対象のGASプロジェクトを設定
- `clasp` で push や deploy する対象の GAS プロジェクトを設定
- [appsscript.json](appsscript.json)
- ランタイムやタイムゾーンなど、GAS側で必要な情報の設定
- ランタイムやタイムゾーンなど、GAS 側で必要な情報の設定
- ブラウザ上で新規プロジェクトを作成する場合は自動で作成される
- 初期設定ではオンラインエディタ上に表示されないようになっているが変更することで表示可能

### SlackのWebClientについて
### Slack の WebClient について

- SlackのWebClientには [@slack/web-api](https://github.com/slackapi/node-slack-sdk)という公式ツールがある
- しかしGASはNode.jsと完全な互換性はないので上記ツールを利用することができない
- 上記ツールにはTypeScriptで開発する上で便利な情報が定義されているため、これをGASでも利用できるようにした
- Slack の WebClient には [@slack/web-api](https://github.com/slackapi/node-slack-sdk)という公式ツールがある
- しかし GAS は Node.js と完全な互換性はないので上記ツールを利用することができない
- 上記ツールには TypeScript で開発する上で便利な情報が定義されているため、これを GAS でも利用できるようにした
- リンクは[hi-se/node-slack-sdk](https://github.com/hi-se/node-slack-sdk)
- `https://gitpkg.now.sh/`を利用して `yarn install` している

0 comments on commit 3cfcba1

Please sign in to comment.