Slack App の作り方
Slack App / Slack Bot を作るのが初めてだったので、備忘録として作り方を詳しめに書きました。同じような方の参考になれば幸いです。
以下は 2021年10月7日に公開された Slack App Configuration 新デザイン の場合です。
新デザインが気に入らない場合は Distribution > Revert to the old design から旧デザインに戻せます。

Slack App 作成
slack api > Your Apps から Create New App をクリックします。
特にこだわりがなければ From scratch を選択、最初から YAML や JSON で app manifest を入力する場合は From an app manifest を選択します。

次の画面で slack app 名と、この slack app を適用する slack workspace を指定します。
workspace は後から変更できません。

Slack App に必要な権限を付与
Settings > App Manifest で公式ドキュメントを参考に、YAML または JSON で App に必要な権限を定義します。

下は user scopes に channels:history, bot scopes に channels:history と chat:write を設定する例です。
bot scope を設定する場合は bot_user の記述も必要となります。
features:
bot_user:
display_name: Test App
always_online: false
oauth_config:
scopes:
user:
- channels:history
bot:
- channels:history
- chat:write
user scope と bot scope の違いですが
- user scope はユーザーに成り代わって処理をする権限
- bot scope はあくまでボットユーザーとして処理をする権限
となっているようです。
どの scope が必要かは用途に応じて選択します。どの Web API methods が用途に合うかを公式ドキュメントで調べて、その API method の Required scopes に書いてある scope を逆引きして設定する、とすると上手く権限設定ができそうです。
例えばチャンネルにメッセージを投稿する chat.postMessage という method を実装で使うのであれば、Bot なら chat:write, User なら chat:write / chat:write:user / chat:write:bot を scope として追加すれば良いことが分かります。

Slack App を Workspace にインストール
Distribution > Install App から対象 Workspace に Slack App をインストールします。

前段階で scopes として設定した権限に対するリクエストが表示されるので、許可するをクリックします。

User OAuth Token (xoxp-) / Bot User OAuth Token (xoxb-) が表示されます。
後で Distribution > Install App からも Token は確認可能です。
Slack App を Slack Channel に追加
主に bot scope として権限を追加している場合に必要な手順です。
Slack を開き、Slack App の処理対象としたい Slack Channel の チャンネル詳細 > インテグレーション > app から作成した Slack App を追加します。
この追加を忘れると bot user として Slack API リクエスト時には not_in_channel というエラーが返ってきます。

実装
あとは発行した Token を用いて Slack API をリクエストするなどの実装を進めていきます。
Slack 公式の各言語 SDK はこちらです。
Slack API Tester
Web API methods ページには GUI から簡単に API をリクエストする Tester があり、実装前にエラー無く API をリクエストできるかテストすることが可能です。

参考
Discussion