ドキュメント
incoming webhook で Slack を連携する
チャンネル用の Slack incoming webhook を作成して AutoPSEO に追加し、テストメッセージを送信する手順と、投稿に失敗したときに Slack が返すエラーの対処法を説明します。
AutoPSEO は incoming webhook を使って Slack に投稿します。Slack が発行する URL は 1 つのチャンネルに書き込むためのものです。この URL を AutoPSEO に貼り付けると、レポートやアラートがそのチャンネルに届くようになります。AutoPSEO 自体はワークスペースに何もインストールしません。メッセージの読み取りやチャンネルの一覧取得はできず、webhook が指す先以外に投稿することもありません。メッセージを受け取りたいチャンネルごとに、エントリを 1 つずつ追加してください。
Slack で webhook を作成する
Slack の incoming webhook は、Slack アプリを通じて発行されます。Slack の incoming webhook ガイドに沿って進めます。
- ワークスペース用の Slack アプリを作成するか、通知用にすでに使っているアプリを開きます。名前は、チームが見てわかるもの(例: SEO reports)にします。
- アプリの設定で Incoming Webhooks を開き、Activate Incoming Webhooks をオンにします。
- Add New Webhook to Workspace をクリックし、チャンネルを選んで承認します。プライベートチャンネルの場合は、先に自分がそのチャンネルのメンバーになっている必要があります。
- Webhook URLs for Your Workspace に表示された新しい URL をコピーします。URL は
https://hooks.slack.com/services/で始まります。
チャンネルを追加するときは、手順 3 と 4 を繰り返します。1 つのアプリに複数の webhook を持たせることができます。Slack の旧来のカスタムインテグレーションの webhook で作成した URL も引き続き利用できますが、Slack はアプリへの移行を推奨しています。
Slack では URL をシークレットとして扱います。URL を知っていれば誰でもそのチャンネルに投稿できてしまいます。AutoPSEO に貼り付けたあとは、チケット、wiki、スクリーンショットなどに残さないようにしてください。
AutoPSEO に追加する
- Slack, Teams & Webhooks ページで Slack - Connected workspaces を探し、Add to Slack をクリックします。送信先に Slack があらかじめ選択された状態で、New channel フォームが開きます。
- Name: AutoPSEO の一覧、配信履歴、テストメッセージに表示されるラベルです。例:
#seo-alerts - Webhook URL: Slack の URL を貼り付けます。Slack のエントリでは、slack.com 上の
httpsアドレスのみ受け付けます。URL が条件に合わない場合は、すぐにエラーが表示されます。 - Add channel をクリックし、追加された行の Send test をクリックします。そのエントリ名を含む短いメッセージが、数秒以内に Slack に届きます。AutoPSEO には、Slack が応答するまでにかかった時間も表示されます。
URL は暗号化(AES-GCM)して保存されます。以降、一覧にはホスト名と末尾の数文字だけが表示されます。どのエントリがどの Slack チャンネルに対応しているかがわかるように、名前を付けてください。
次に、投稿する内容を設定します。定期レポートまたはアラートを作成してください。一覧の下にある Slack - Subscriptions テーブルでは、Slack チャンネルごとに、そこへ投稿しているすべてのルール、そのスケジュール、有効か一時停止中かを確認できます。
複数のチャンネルとワークスペース
webhook URL は、1 つのワークスペースの 1 つのチャンネルに紐づきます。また、Slack では、メッセージ側で作成時に指定したチャンネル以外へ投稿先を変更することはできません。このため、動作は予測しやすくなっています。
- Slack の 1 チャンネルにつき、エントリは 1 つです。クライアントごとに
#client-aと#client-bに振り分けたい場合は、それぞれ webhook を作成して両方を追加します。 - 複数のワークスペースを使う場合も同様です。webhook は作成したワークスペースに属します。
- 1 つのエントリに、複数のルールを割り当てられます。週次レポートとトラフィック低下アラートを同じエントリに送ることも、アラートだけを投稿量の多い別のチャンネルにまとめることもできます。
メッセージが届かない場合
Send test を実行すると、原因がすぐに表示されます。スケジュール配信の場合は Delivery history を開いてください。失敗した試行ごとに、Slack からの応答が記録されています。
| AutoPSEO の表示 | 意味 | 対処法 |
|---|---|---|
| Slack rejected the URL (no_service) | Slack 側で webhook が削除または無効化されているか、URL が間違っています | 新しい webhook を作成して追加し、古いエントリを削除してください |
| The Slack channel no longer exists, or is archived | Slack が channel_not_found または channel_is_archived を返しました | 現在使用中のチャンネルで webhook を作成してください |
| Slack is rate limiting us | Slack が HTTP 429 を返しました | しばらく待ってから Send now または Test rule を実行してください |
| Timed out after 10 seconds | Slack が時間内に応答しませんでした | しばらくしてからもう一度お試しください |
| Your trial has ended | 有効なプランまたはトライアルがありません | プランを選択してください。スケジュール配信はプランの開始後に再開されます |
スケジュールされたレポートが失敗した場合、同じ期間内に再送されることはありません。原因を解消したら Send now を使ってください。投稿できなかったアラートは、次回のチェックで再度評価されます(アラートが実行されるタイミング)。
Slack チャンネルを削除する
エントリの行にある Delete をクリックすると、保存されている URL と、そこへ投稿しているすべてのルールが削除されます。削除前の確認画面で、削除されるルールの数が表示されます。AutoPSEO は Slack 側には何も変更を加えません。Slack アプリで誰かが削除するまで、webhook は引き続き有効です。URL が第三者の目に触れた可能性がある場合は、Slack 側でも webhook を削除してください。