⚠️ 非推奨 - もはや推奨される設定ではありません
この記事はSalesforce Enhanced Chat Messaging ChannelのJWT認証設定について説明します。新しいSalesforceの導入ではBring Your Own Channel (BYOC)を使用してください:[リンク]。これらの手順はすでにEnhanced Chatを使用しているワークスペース向けに残されています。
この記事では、Fin MessengerがSalesforce Enhanced Chatに会話をルーティングする際にusersを認証するために必要なJSON Web Token(JWT)の生成と設定方法を説明します。これらの手順を完了すると、FinはusersのIDをFinとSalesforceの両方に安全に渡せるため、チームメンバーは顧客の身元を信頼できます。
注意:前提条件:Fin Messengerはすでにアプリにインストールされており、Salesforce Enhanced Chat Messaging Channelが設定されている必要があります。以下のRailsコード例を使用する場合はRubyのjwt gemが必要です。この機能はSalesforce統合を含むFin Messengerプランで利用可能です。アクセス確認はアカウントチームにお問い合わせください。
Salesforce Enhanced ChatでFin Messenger認証を有効にするには、JWTをintercomSettings属性に追加する必要があります:
intercom_user_jwt
これはFinにContact IDおよびFin(またはSalesforce)に提供したいContactまたはAccountの属性を安全に提供するために使用されます。
intercom_user_jwtを省略すると、Finは連絡先データをSalesforceに安全に渡せません。
JWTは各ページロード時に現在のusersのためにサーバー側でプライベートキーを使って生成する必要があります。以下の手順に従い、各キーを取得してFin MessengerとSalesforceでusers認証を有効にしてください:
Intercomのプライベートキーを取得します — 設定 > Messenger > セキュリティに移動し、Messenger API Secretをコピーします。これはintercom_user_jwtの署名キーです。
Fin Messenger:Salesforceでのusers認証有効化の手順に従ってSalesforceでのUser Verificationを有効にしてください。設定後、FinがSalesforce JWTの生成を処理します。
以下のRails例は、Fin MessengerとSalesforce Enhanced Chat認証用のJWTを生成し、それらをintercomSettingsオブジェクトに渡す方法を示しています。
Railsビュー — Fin Messenger用のJWTをintercomSettingsに渡す例:
window.intercomSettings = {
api_base: "https://api-iam.intercom.io",
app_id: "your-app-id-here",
user_id: "<%= current_user&.id %>",
intercom_user_jwt: "<%= intercom_jwt(current_user&.id %>",
};
Railsヘルパー — Fin Messenger用のFin JWTを生成する例:
intercom_jwtはHS256(HMAC-SHA256、対称署名アルゴリズム)を使用し、Intercom Messenger API Secretで署名します。
def intercom_jwt(user_id)
JWT.encode({ user_id: user_id, exp: Time.now.to_i+3600 }, INTERCOM_JWT_SECRET, "HS256")
end
注意:JWTは1時間後に期限切れになります(exp: Time.now.to_i + 3600)。各ページロード時に再生成する必要があり、セッション間でキャッシュしないでください。JWTが会話中に期限切れになると、顧客は再認証のためにページを更新する必要がある場合があります。
