2021/05/24

SalesforceのStreaming APIとは?概要や特徴をご紹介します

 
  

SalesforceのAPIとは?

Salesforceには外部のソフトと連携するために、Salesforceを操作するためのプログラム命令が数多く公開されています。このプログラム命令のことをAPIと呼びます。 例えば、SalesforceのAPIを使用すれば、外部のソフトからSalesforceで管理しているデータを検索したり、参照したり、追加を行ったりすることができます。 今回は数多く存在するAPIのうち、Streaming APIについて説明します。

Streaming APIとは?

Streaming APIとは、更新イベントを通知するための命令です。 Streaming APIを使用すれば、Salesforce側からクライアントに対して、Salesforceのデータが更新されたことを通知することが可能です。例えば、ホームページにStreaming APIを埋め込み、ユーザーに更新情報を通知するなどの使用が可能です。 ただし、APIの制限やプロトコルの仕組み上、必ず通知が送られる保証がないため、コアデータの連携には適していないので注意する必要があります。

Streaming APIの通知方法

Streaming APIでは、クライアント側のソフトで定義した条件でSalesforceから「プッシュ型」の通知を受け取ります。 Streaming API以外のAPIでは、クライアント側のソフトはプッシュ型ではなく、Salesforceにデータを都度要求する「プル型」でデータを受け取るので、Streaming APIはこの点が他のAPIと異なるところです。

プッシュ型とプル型の違い

プッシュは(Push=押す)、プルは(Pull=引く)のことです。 「プッシュ型」はクライアント側は何もしなくても知りたい情報が送られて来るのに対し、「プル型」はクライアント側から情報を引き出してくる必要があります。 Streaming APIでは、クライアント側はプッシュ型で更新通知を受け取ることができるので、プル型のように更新があるかどうかを常にチェックする必要はありません。

外部で管理しているデータとの同期

外部のシステムにビジネスデータがある場合、Streaming APIを使用すれば、Salesforceデータと同期することが可能です。 Streaming APIのPushTopicイベントと変更データキャプチャイベントを使用すれば、外部で管理しているデータとSalesforceのデータを常に同期しておくことが可能です。また、Salesforceのデータが更新された場合、外部システムの手続きを実行することも可能です。 例えば、Streaming APIを使用すれば、商談情報が更新されるたびに注文発注センターに商談情報を通知するということが可能となります。

PushTopicのサンプルプログラム

PushTopicはイベント通知を受信するオブジェクト、項目、条件を指定できます。 以下のサンプルプログラムは、Apexで定義してinsertしたPushTopicの例です。[Id]、[Name]、[Phone]項目が作成、更新、削除、復元された場合に通知が送信されます。 //サンプルプログラム PushTopic pushTopic = new PushTopic(); pushTopic.Name = ‘AccountUpdates’; pushTopic.Query = ‘SELECT Id, Name, Phone FROM Account WHERE BillingCity=\’San Francisco\”; pushTopic.ApiVersion = 37.0; insert pushTopic;

Streaming APIの用語

ここでは、Streaming APIで使用する用語について説明します。 1)イベント:Salesforceデータの作成、更新、削除、復元などのアクションのことです。 2)通知:イベントに対応したメッセージのことです。 3)チャネル:クライアントがイベント通知を設定する単位です。 4)イベントバス:イベント通知を送受信する資源です。 5)プラットフォームイベント:独自の変更通知項目を設定できる機能です。 6)PushTopic:Salesforceデータの作成、更新、削除、復元操作によって変更された場合の通知イベントです。指定した項目の変更のみを通知します。 7)変更データキャプチャイベント:PushTopicイベントと同様にSalesforceデータの作成、更新、削除、復元操作によって変更された場合の通知イベントで、変更されたすべての項目を通知します。

Streaming APIカスタム通知の送信

汎用イベントを使用すると、Salesforceデータの変更通知に関連付けられていない項目でもカスタム通知を送信することが可能となります。 カスタム通知を使用する場合は、汎用ストリーミングを使用し、以下の操作を行います。 1)定義されているイベントスキーマは使わずにJSONで任意のデータを受信する 2)対象ユーザーやチームに通知を送信する 3)Salesforceの外部で発生するイベント通知を送信する また、汎用イベントを使用するには以下のものが必要となります。 1)チャネルを定義する StreamingChannel 2)チャネルに登録されたクライアント情報 3)チャネル送信イベントを監視するStreaming Channel Push REST API リソース

Streaming APIを使いこなそう!

今回は、Salesforceのデータが変更された場合に通知を受け取ることができるStreaming APIについて説明しました。 Streaming APIの通知はプッシュ型なので、クライアント側から都度変更がないかどうかを問い合わせる必要がなく、無駄な処理を省くことができます。 Streaming APIを活用できるように理解しておきましょう。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】