Как отправить accessToken в API-интерфейс определения текста в диалоге - PullRequest
0 голосов
/ 29 октября 2018

Я разрабатываю серверную часть своего чат-бота, используя API определения намерений в Python, после того, как намерение распознано, оно отправляется в мой веб-крючок и получает соответствующие данные.

вот мой код датчика обнаружения для получения данных из текста

def detect_intent_texts(project_id, session_id, text, language_code='en-US'):
   session_client = dialogflow.SessionsClient().from_service_account_file(
    'my_service_account_json.json')
   session = session_client.session_path(project_id, session_id)
   print('Session path: {}\n'.format(session))
   text_input = dialogflow.types.TextInput(text=text, language_code=language_code)
   query_input = dialogflow.types.QueryInput(text=text_input)
   response = session_client.detect_intent(session=session, query_input=query_input)
   data = MessageToDict(response.query_result)
   print (json.dumps(data, indent=4))
   response = parse_response(data)
   return response

Как я могу отправить access_token с ним, чтобы мой webhook мог идентифицировать какой пользователь обращается к боту

P.S. мой webhook ищет токен доступа по этому пути

req.get("originalDetectIntentRequest").get("payload").get("user").get("accessToken")

1 Ответ

0 голосов
/ 29 октября 2018

Все под атрибутом «полезная нагрузка» зависит от платформы. Например, платформа Assistant размещает здесь информацию о пользователе, и именно это сейчас пытается обработать ваш webhook.

Если вы хотите поместить токен доступа в то же место, вы можете передать именованный параметр query_params в вызов detect_intent() вместе с запрашиваемым текстом и всем остальным, что может иметь отношение. ( Ссылка ) Этот параметр может быть надиктованным и, если это так, должен иметь те же имена полей, что и QueryParameters объект.

...