SFTP To GoのWebフック通知を使って、ファイルの作成、変更、削除をアプリケーションに通知する方法を一つずつご説明します。
まず最初に、Webフックについて見ていきましょう。これはオンラインサービス間の通信を促す様々な手段の一つで、アプリ同士が接続するための方法です。具体的には、起点のシステムから送信先、または受信先のシステムへのイベントによって起動されるHTTPリクエストのことです。
この自動的なデータ交換は、HTTP(S)のプロトコルを使ってウェブ上で行われ、ほとんどの場合、実際のデータはHTTPリクエストボディ内のJSON形式を使って送信されます。Webフックを設定すると、送信側アプリは、受信側アプリがリッスンしている WebフックのターゲットURLを認識し、イベントを待ちます。
SFTP To Go の Webフック通知を使うと、アプリを統合し、SFTP内のファイルやディレクトリの削除、作成、変更に追従し、変更に応じて自動的に処理する機能が備わります。
本記事では、SFTP To Go で Webフック 通知を設定する方法をステップバイステップでご紹介します。テスト目的のため、webhook.site エンドポイントをWebフックの URLとして使うことにします。アプリのコードを配置したらすぐに、WebフックのURLをアプリのURLに設定し、リクエストがきちんと適切に処理されていることの確認が必要です。
ステップ1:新しいWebフックの追加
- SFTP To GoのDashboard(ダッシュボード)に移動します。
- 上部メニューの Webhooks(Webフック) をクリックします。
- Add webhook(Webフックの追加) をクリックします。
- ポップアップするダイアログで、以下のように記入します。:
- ニックネーム - Webフックがよく説明されているわかりやすい名前
- エンドポイントURL - Webフック通知をすべて受け取るサーバーエンドポイントのHTTPS URL
- 認証ヘッダー - アプリケーションで認証が必要な場合、または受信するリクエストが本当に SFTP To Go からのものであることを確認したい場合、認証ヘッダーに値を記入し、受信側でその値が存在することを単純に確認することができる。
- トピック - 受けたい通知の種類選択。ユースケースに応じて、以下のトピックのどちらか、または両方の選択が可能:
- 作成ファイル - 新しいファイルやディレクトリが作成されるたびに通知される。
- 削除ファイル - ファイルやディレクトリが削除されたときに通知。
- Add webhook(Webフックの追加) をクリックします。
- サインの際に必要な「秘密」が作成され、コピーするために一度だけ公開されます。そして各リクエストは、Webフック リクエストの
X-Hub-Signature
ヘッダーでSFTP To Goによって署名されます。リクエストの信憑性を確認したい場合は、署名済みのパスコードをコピーして、それを使ってウェブフックの署名を確認できますが、署名済みのパスコードはいつでもローテーションして、新しいものを割り当てるといいでしょう。 - Okay, I got the secret(はい。パスコードを受け取りました)をクリックして、次のステップに進みます。
ステップ2:新しい Webフックをテストする
Webhookのセットアップがすべて完了したので、次は受信側ですべてが適切に動作していることを確認するためのテストです。これを行うには、ping送信が最も効率的な方法です:
- SFTP To GoのWebフックのパネルで、WebhookのActions(アクション)のメニューをクリックし、Ping webhook(Ping webhook)を選択します。
2.「Yes, ping this webhook.(はい、このWebフックにピングします)」 をクリックします。
3. アプリが Webhookを取得し、管理していることを確認します。200のステータスコードで応答することを念頭に置いてください。webhook.site を使ってWebhookをテストしている場合、リクエストのヘッダーとボディを見ることができます。ペイロードの中では、イベントがいつ発生したかを示す CreatedAt
キーと、それが "webhook.ping"イベントであることを示す Topic
に注目してください。そしてOrganizationId
は、SFTP To Goアドオンインスタンスを識別するものです。
Webフックのテストのその他の方法としては、イベント発生の待機か、単純なファイルのアップロード又は既存のファイルの削除による手動でのイベント開始があります。
リクエストペイロードの Data
キーには、ファイルのパスやサイズなどの重要な情報が含まれています。
Webhookペイロードの詳細については、こちらをご覧ください。また、Webフックの簡単なチュートリアルもご覧になれます。
写真提供:Damir Spanic - Unsplashより