Stream モードとは
Stream モードは、DingTalk Open Platform が提供する連携方式です。ボットコールバック、イベントサブスクリプションのコールバック、および登録済みのカードコールバックをリッスンできます。Stream モードで連携すると、DingTalk Open Platform は WebSocket 接続を通じてアプリと通信します。Stream モードは連携のハードルとリソース依存を大幅に低減します。サーバー、IP アドレス、ドメインといったパブリックネットワークリソースは不要で、DingTalk Open Platform SDK を組み込むだけで利用できます。Stream モードの原理
Stream モードでは、アプリが SDK を組み込むことで、DingTalk Open Platform との間に WebSocket 接続を確立します。接続の過程で、Open Platform は接続を認証します。カードコールバックが発生すると、Open Platform は WebSocket 接続を通じてデータをアプリにプッシュします。アプリはこのデータを受信して適切に処理でき、下図のように DingTalk Open Platform とのリアルタイム通信を実現します。Stream モードのメリット
DingTalk Open Platform がアプリにリクエストを送信するシナリオでは、カードコールバックを含め、多くの場合 Webhook 方式(パブリック HTTPS サービスの登録)が用いられます。Webhook 方式での開発には、次のような多くの課題があります。- パブリックドメインと TLS 証明書の申請
- パブリック IP アドレスの申請とアクセスゲートウェイの構築
- アプリケーションファイアウォールの構築とホワイトリストの設定
- リクエスト認証および暗号化・復号の自前対応
- ローカル開発・デバッグ用のイントラネット貫通環境の構築
- パブリック IP 不要 パブリック IP アドレスやドメインに依存したり公開したりする必要がありません。これにより、サービスをパブリックネットワークに公開することによるセキュリティリスクを低減し、開発のハードルを下げます。
- 暗号化・復号、署名、TLS 証明書管理が不要 アプリの identity を使って接続を認証し、リバース接続を通じて DingTalk Open Platform との間に TLS 暗号化接続を確立することで、高速かつ安全な通信体験を提供します。
- ファイアウォールのホワイトリスト不要 Stream モードでは、サーバーのポートをパブリックネットワークに開放したり、ファイアウォールを構築したり、ホワイトリストを設定したりする必要はありません。
- ゲートウェイのデプロイ不要 チャンネルはリバース接続を通じて確立されます。実行環境がパブリックネットワークにアクセスできることを確保するだけでよく、ゲートウェイのデプロイは不要です。
- イントラネット貫通不要 ローカルにイントラネット貫通ツールを構築する必要はありません。Stream モードなら、ローカルの開発環境で直接カードコールバックを受信できます。
連携方法
重要 クライアントサイドは、起動するとすぐに対応するカードのコールバックを受信します。テスト環境や開発環境をデプロイする際は、本番環境に影響を与えないようご注意ください。連携の制限
- アプリをデプロイする環境は、パブリックネットワークにアクセスできる必要があります。
- 内部アプリおよびサードパーティ企業アプリにのみ適用されます。
- 各クライアントインスタンスはデフォルトで 1 つの WebSocket 接続を有効にし、1 つのアプリはデフォルトで最大 50 の接続を確立できます。
Java
-
実行環境
JDK 1.8 以降。 -
Java SDK のインストール
プロジェクトのpom.xmlファイルに依存関係を追加するか、対応する JAR パッケージをダウンロードします。最新の SDK バージョンはこちらで確認・ダウンロードできます。 -
サンプルコード
ボットコールバック詳細はボット開発ドキュメントをご覧ください。 パラメータ説明イベントサブスクリプションのコールバック詳細は Stream プッシュの設定をご覧ください。 パラメータ説明カードコールバック詳細はインタラクティブカード Streamをご覧ください。 パラメータ説明
Golang
-
実行環境
1.16 以降。 -
SDK のインストール
-
サンプルコード
ボットコールバックパラメータ説明