Rocket.Chat

DrupalとRocket.Chatを統合し、設定管理、APIクライアント、ライブチャットウィジェットの埋め込み、グループチャットチャンネル機能を提供します。

rocket_chat
128 sites
40
drupal.org

インストール

Drupal 10, 9 v3.0.1
composer require 'drupal/rocket_chat:^3.0'
Drupal 8 v8.x-2.5
composer require 'drupal/rocket_chat:8.x-2.5'

概要

Rocket.Chatモジュールは、DrupalサイトをオープンソースのチームチャットプラットフォームであるRocket.Chatと統合します。この包括的な統合モジュールは、さまざまなユースケースに対応する複数のコンポーネントを提供します。

メインモジュールは、Rocket.Chatサーバーインスタンスとの通信に必要な接続設定と認証情報の管理を行います。APIサブモジュールは、Rocket.Chat REST API用の完全なPHPクライアントライブラリを提供し、チャンネル、ユーザー、メッセージなどのプログラム的な管理を可能にします。

訪問者とのエンゲージメント向けに、LivechatサブモジュールはRocket.Chat Omnichannel(Livechat 2.0)ウィジェットをDrupalサイトに埋め込み、リアルタイムのカスタマーサポートを実現します。コミュニティサイト向けには、Group統合サブモジュールがDrupalグループ(Groupモジュール)をRocket.Chatチャンネルと接続し、グループ用のチャンネルを自動作成してメンバーシップを同期します。

このモジュールにはTLSリバースプロキシの背後にあるRocket.Chatサーバーインスタンス(バージョン1.0.0以上)が必要です。Rocket.Chatとのすべての通信は、Drupalで設定された管理者認証情報を使用した認証済みREST API呼び出しを通じて行われます。

Features

  • URLと管理者認証情報の設定によるDrupalからRocket.Chatサーバーへの接続
  • 認証、チャンネル、グループ、ユーザー、メッセージングをサポートするRocket.Chat REST API用の完全なPHP APIクライアント
  • 設定可能なBlockを介して任意のページにRocket.Chat Livechat(Omnichannel 2.0)ウィジェットを埋め込み
  • Drupal GroupモジュールとRocket.Chatチャンネルの統合 - グループチャットチャンネルの自動作成と管理
  • グループメンバーシップとRocket.Chatチャンネルメンバーシップの同期(ユーザーの自動追加/削除)
  • Rocket.Chatのパブリックチャンネルとプライベートグループの両方をサポート
  • 自動更新機能付きのチャンネル、グループ、ユーザーのCache管理
  • グループEntityにチャンネル名を保存するためのFieldタイプ
  • 認証済みメンバー向けのグループチャットチャンネルの埋め込みiframe表示
  • 開発者が任意のREST API呼び出しを実行するためのAPIテストページ

Use Cases

Livechatによるカスタマーサポート

Livechatサブモジュールを有効にし、LiveChatBlockをテーマのフッターリージョンに配置します。Rocket.ChatのOmnichannel設定でエージェントを設定します。サイト訪問者は、サポートスタッフとリアルタイムで通信できるチャットウィジェットが表示されます。

コミュニティグループチャット

Groupモジュールを使用するコミュニティサイト向けに、rocket_chat_groupサブモジュールを有効にします。グループタイプにChannelFieldを追加し、Rocket Chat Group ChannelBlockをグループページに配置します。グループメンバーは対応するRocket.Chatチャンネルに自動的に追加され、各グループ内でのチームコミュニケーションが可能になります。

イントラネットでのチームコミュニケーション

組織のRocket.Chatサーバーでモジュールを設定します。Group統合を使用して部門やプロジェクトチーム用のチャットチャンネルを作成します。メンバーはグループページで埋め込みチャットiframeを見ることができ、Drupalサイトを離れることなく迅速なチームディスカッションが可能になります。

API開発とテスト

開発中にrocket_chat_api_testサブモジュールを有効にして、Rocket.Chat API呼び出しを実験します。/apitestにアクセスして様々なAPIメソッドを実行し、レスポンスを確認することで、カスタム統合を構築する前にAPIを理解するのに役立ちます。

カスタムRocket.Chat統合

rocket_chat_apiサブモジュールのクラスをカスタムコードで使用します。Drupal8ConfigでApiClientをインスタンス化して認証し、channelsCreate()、postMessage()、usersList()などのメソッドを呼び出してカスタム機能を構築します。ChannelとUserエレメントクラスは、これらのEntityを管理するためのオブジェクト指向インターフェースを提供します。

Tips

  • LivechatBlockは非同期で読み込まれ、ページレンダリングをブロックしないため、最高のパフォーマンスのためにフッターリージョンに配置してください
  • Rocket.Chatで直接変更を加えた後、「Rebuild Rocketchat Cache」を使用してDrupalが最新のデータを持っていることを確認してください
  • チャンネル名は自動的にサニタイズされます - スペースはアンダースコアになり、特殊文字はURLエンコードされます
  • プライベートグループの場合、Drupalグループタイプを'closed_group'に設定すると、モジュールはパブリックチャンネルではなくプライベートRocket.Chatグループを作成します
  • /apitestのAPIテストページは、カスタム統合を構築する前にAPIレスポンスを理解するのに非常に役立ちます
  • キャッシュされたチャンネルとユーザーデータは7日後に自動的に更新されますが、設定ページからいつでも強制更新できます

Technical Details

Admin Pages 2
Rocket.Chat設定 /admin/config/rocket_chat

Rocket.Chatサーバーインスタンスへの接続を設定します。このページでは、API認証に使用するサーバーURLと管理者認証情報を設定できます。設定保存時にモジュールが接続を検証します。

Rocket.Chat APIテストページ /apitest

DrupalからRocket.Chat REST API呼び出しを直接テストするための開発者向けツール。任意のGETまたはPOSTリクエストをAPIに実行し、レスポンスを表示できます。デバッグやAPI機能の調査に役立ちます。

権限 1
Rocket Chatを管理

Rocket Chat統合を設定および管理します。/admin/config/rocket_chatの設定ページと/apitestのAPIテストページにアクセスするために必要です。これは制限付きの権限です。

Hooks 5
hook_ENTITY_TYPE_insert (group_content)

ユーザーがDrupalグループに追加されたときにトリガーされます。対応するRocket.Chatチャンネルにユーザーを自動的に招待します。

hook_ENTITY_TYPE_update (group_content)

グループコンテンツが更新されたときにトリガーされます。Rocket.Chatでのメンバーシップ変更を処理します。

hook_ENTITY_TYPE_delete (group_content)

ユーザーがDrupalグループから削除されたときにトリガーされます。対応するRocket.Chatチャンネルからユーザーを削除します。

hook_theme

hook_themeを実装して、埋め込みチャットをレンダリングするためのrocketChatChannelBlockテンプレートを登録します。

hook_help

Rocket.Chat設定ページのヘルプテキストを提供します。

Troubleshooting 5
チャットウィジェットやiframeに何も表示されない

セッションを確立するために、UIから少なくとも一度Rocket.Chatインスタンスにログインしていることを確認してください。また、LivechatBlockがアクティブなリージョンに配置されていること、サーバーURLが正しく設定されていることを確認してください。

RocketChatサービスへの接続に失敗したエラー

Rocket.ChatサーバーのURLが正しく、HTTPSを使用していることを確認してください。サーバーはTLSリバースプロキシの背後にある必要があります。Drupalサーバーからサーバーにアクセスでき、/api/infoエンドポイントに応答していることを確認してください。

「チャットメッセージを使用できません」と表示される

これはAPI設定が不完全であることを示しています。/admin/config/rocket_chatで管理者ユーザー名とパスワードの両方が正しく入力されていること、認証情報がRocket.Chatサーバーで管理者権限を持っていることを確認してください。

グループ用のチャンネルが作成されない

グループにChannelFieldの値が入力されていることを確認してください。設定ページで「Rebuild Groups Channels」をクリックして同期を強制します。APIエラーメッセージがないかDrupalログを確認してください。

ユーザーがRocket.Chatチャンネルに追加されない

モジュールは存在しないユーザーをRocket.Chatで自動的に作成します。管理者認証情報にユーザーを作成する権限があることを確認してください。Rocket.Chatはユーザーマッチングにメールを使用するため、ユーザーのメールアドレスが一意であることを確認してください。

Security Notes 6
  • 管理者認証情報はDrupal設定に保存されます - 設定エクスポートファイルを保護してください
  • モジュールは完全な機能(ユーザー作成を含む)のためにRocket.Chatへの管理者レベルのAPIアクセスが必要です
  • 認証トークンはDrupalのstateシステムに保存され、設定と一緒にエクスポートされません
  • 'administer rocketchat configuration'権限は信頼できる管理者にのみ付与してください
  • Rocket.ChatサーバーはHTTPSを使用する必要があります - モジュールはTLS暗号化接続のみをサポートします
  • Rocket.Chatで作成されるユーザーパスワードはランダムに生成された512バイトの16進文字列です - ユーザーは直接ログインではなくSSOまたはOAuthで認証する必要があります