読書とプログラミングを中心とした覚書ブログ

読書とプログラミングについて、日々経験したことを忘れないようにするため、極力ブログに記録を残すように頑張る。

SlackのIncoming Webhooksが失敗した時の対処

 公開日   

       

我が家のIoTとしてSlackのIncoming Webhooksを活用したサービスをいくつか作っているのですが、どういうわけかここ最近になっていずれも通知に失敗しているようでした。
週末に原因を調べてみたところ思わぬところに原因があることが判明し対処することができましたので、その内容をメモしておきたいと思います。

Incoming Webhooks失敗の原因

我が家のネットワークが不安定になっているのか、DNSの検索に失敗しているのか、Slackサイトへの通信路に問題があったのか、といろいろ切り分けて進めてみたところ、最終的にSlackサイト自身の問題に行きつきました。
一言でいうと、以前ドアセンサーを作ったときに想定していた問題を引き当てていたようです。

以下に抜粋します。

Slackサイトのフィンガープリントが変更になるかもしれませんが、その場合はChromeなら次のように最新版を確認できます。

  1. Slackサイトを表示させる
  2. F12キーでDeveloper Toolsを開く
  3. [Security]タブにある[View certificate]ボタンを押す
  4. [詳細]タブで、[拇印]というフィールドにある値を書き写す

そして上記手順に沿って最新のフィンガープリント(拇印)を確認すると次のような値に更新されていることが確認できました。

  • 有効期間:2018/02/08から2021/02/12
  • 拇印:c10d5349d23ee52ba261d59e6f990d3dfd8bb2b3

古いフィンガープリントに設定された有効期間は当時確認していなかったのですが、最新のものが2018/02/08から有効なので、私が参照していた古いものはすでに無効になっているはずです。
そのためここ最近の、おそらく2月8日以降の通知が失敗していたものと思われます。

対処したファームに更新

対処方法はArduinoソースコード中に埋め込む文字列を更新して、再度コンパイルとファームのアップロードという手順で行います。
例えばドアセンサーのプログラムであれば、以下フォーカスした行の文字列を更新します。 ※公開済みの記事のほうも更新済みです。

約1年ぶりに再コンパイルをしたことになるので、もしかしてライブラリのバージョン違いなどの理由でコンパイルがエラーになったらどうしようと思いましたが、特に問題なくファームのアップロードまで完了しました。

そして動作確認をしたところ、フィンガープリントの更新によってこれまで同様に元気に通知が行き届くようになり、フィンガープリントが古いことが原因であることが確認できました!

次の有効期限が2021年と、おそらくもう更新することはないものと思いますが、何があるかわからないのがWEBなので(笑)、記念にメモを残すことに決めました。

レスポンシブ広告

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.

  関連記事

Attiny13Aの工場出荷時の書き込みエラーを対策

Attiny13Aは工場出荷時に低速の動作周波数になってる模様です。 この時Ar …

「子ども見守りサービス」をDIYで自作する

最近「子ども見守りサービス」が注目されているようです。 どうも私は課金の発生する …

ドア開閉イベントをSlackへお知らせするセンサーを作る

最近Raspberry Piを手に入れてから個人的にマイコンが流行っていて、WE …

SlackのIncoming Webhooksが失敗した時の対処