🎃

新機能:Momento Topics が Webhooks 送出に対応したので試してみました

2023/12/09に公開

https://jp.gomomento.com/blog/how-to-use-webhooks-and-momento-topics-to-build-a-multi-language-chat-app/

Momento Topics がWebhook送出に対応したので試してみました。特定のTopicにメッセージをPublishした際に、Webhookとして外部にメッセージを渡すことが可能です。

さっそくやってみる

まずはnode.jsでMomento TopicsにメッセージをPublishする環境を作成します。
https://zenn.dev/momentobigfun/articles/d8295a0b1f0435
はMomento が提供しているCLIを活用してPublishとSubscribeを行いましたが、せっかくなので勉強を兼ねて以下のコードを作成しました。

publish.js
// Declare the Momento SDK library
const {
  TopicClient, TopicConfigurations, CredentialProvider,
  TopicPublish, TopicSubscribe,
} = require('@gomomento/sdk');

const dotenv = require('dotenv');

dotenv.config();

const topicClient = new TopicClient({
  configuration: TopicConfigurations.Default.latest(),
  credentialProvider: CredentialProvider.fromEnvironmentVariable({
    environmentVariableName: 'MOMENTO_API_KEY',
  }),
});

// Publish a value
topicClient.publish('demo-cache', 'test-topic', 'fromvscode');

ここで使っているdemo-cacheは既にMomento側で存在しているCacheを指定します。Topicの名前であるtest-topicはMomento Topicsではあらかじめ指定してく必要がないことが一つの特徴であり、拡張性の高さにつながりますが、Webhookを飛ばすためにはあらかじめ指定しておく必要があります。
それでは早速指定してみます。MomentoマネージメントコンソールでCacheの管理画面に移動します。

webhooksをクリックします。
Create Webhookを押します。

Webhookの名前、Topic名、送付先URLを指定してCreateを押します。

Webhookを受信できるテスト環境がない方は、以下のサイトを使います。
https://webhook.site/
ブラウザでアクセスした瞬間にWebhook受信URLを出力してくれます。そのURLをcopyして貼り付けておきましょう。
以上で設定は完了です。

テスト

TopicsのコンソールでSubscribe設定をします。

そうすると簡単にテストが可能な画面が出てきます。

例えばtestという文字列を入力してPublishボタンを押すと左側にサブスクライバtestを受信します。

先ほどのWebhook受信用テストサイトを見ると、正しくメッセージを受信していることがわかります。

publish.jsを実行するとまた新しくメッセージを受信します。

Discussion