Developer Dashboard

SNS連携

CGSのエンドポイントとして外部SNSと連携する場合、UDS側でOAuth認証を実行し、アクセストークン(認証情報)を取得する必要があります。DDSでは、OAuth認証の実行に必要な情報をExpert Agentに登録しておくことができます。

UDS側でExpert Agentを有効化すると、SNSの認証が実行され、アクセストークンが保存されます。ユーザーとExpert Agentの対話が始まると同時にExpert Agentへアクセストークンが渡され、Expert Agentは受け取ったアクセストークンをCGSに送信します。

SNS連携の動作イメージ

OAuth認証の実行に必要な情報

連携する外部SNSから、OAuth2.0の仕様に則った情報を取得してください。

必要な情報 内容
Authorization URL アクセストークン新規取得時にExpert Agentから呼び出す認証許可サーバーのURL(Authorizationエンドポイント)
Refresh Token URL アクセストークン再発行時にリフレッシュトークンを送信するURL(Tokenエンドポイント)
Client ID トークン取得時に使用するクライアントID
Client secret クライアントID に紐づくクライアントシークレット
Scope トークン取得時に使用する各外部SNSが提供しているアクセス範囲(スコープ)
Option設定画面

SNS連携時のインターフェイスモデル

リクエスト

Expert AgentからCGSに対して送信されるリクエストの形式は、以下のとおりです。

Method: POST
Headers: "Content-type: application/json"
Request Body:
{
	"bot_id":"{内部的に払い出されたID}",
	"user_id":"{ユーザ識別ID}“,    ※1
	"lang":"ja-JP",
	"args":{
		"utterance": "{ユーザ発話}",
		"intent":"{Intent名}",
		"{slot名}":["{slotのentity}","{slotのentity}",…],    ※2
		"access_token": "{value}",    ※3
		"refresh_token": "{value}",    ※3
		…
	}
}
  • ※1: 「user_id」は、UDSのShadow IDです。
  • ※2: Slotは、args内に「key,value」の形式で並列します。
  • ※3: アクセストークン、リフレッシュトークン情報がargs内に追加されます。

レスポンス

Expert AgentがCGSから受け取れるレスポンスの形式は、以下のとおりです。

Response Body:
{
	"error_code":"success",
	"status":"true",
	"bot_id":"{内部的に払い出されたID}",
	"user_id":"{ユーザ識別ID}",
	"params":{
	"status":"true",
	"talkend":"true|false", ←未設定でも可
	"access_token" : "{value}",    ※1
	"refresh_token": "{value}",    ※1
	"message":"{CGS側が返すシステム発話}",    ※2
	"option":{    ※3
		"balloon":[
		…
		]
	}
	}
}
  • ※1: アクセストークン、リフレッシュトークン情報を更新したい場合は、params内に追加します。
  • ※2: Expert Agentは、CGSからのメッセージをそのままユーザーに回答します。
  • ※3: 「option」にはメタ情報を記述します。フィールド定義やクライアント側アプリのメタ情報への対応状況について詳しくは、こちらを参照してください。