この記事では、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はcontactデータをSalesforceに安全に渡せません。
JWTは各ページ読み込み時に現在のusersのためにサーバー側でプライベートキーを使って生成する必要があります。以下の手順に従い、各キーを取得してFin MessengerとSalesforceでusers認証を有効にしてください:
Intercomのプライベートキーを取得します。設定 > Messenger > セキュリティに移動し、Messenger API Secretをコピーしてください。これはintercom_user_jwtの署名キーです。
Fin Messenger:Salesforceでのusers認証有効化のステップバイステップの手順をご覧ください。設定後、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が会話中に期限切れになると、顧客は再認証のためにページを更新する必要がある場合があります。
