Как получить выполнение Twilio Studio Flow через call sid

Мы пытаемся включить шаги IVR в наш пользовательский интерфейс, но чтобы получить шаги, мне нужно сделать несколько вызовов API. Это нормально, за исключением того, что единственный способ, которым я могу получить соответствующую информацию, - это загрузить все выполнения потока.

Если бы я мог передать flow.sid через виджет HTTP Request, то я мог бы получить информацию, которая мне нужна позже, вместо того, чтобы повторять все предыдущие выполнения. Я попытался передать {{flow.data}} в качестве тела запроса, думая, что это JSON, но в итоге он оказался пустым.

 конфигурация виджета RequestBin ответ

Вот шип, который кто-то написал для нас, модифицированный для работы только с одним execution.

require "httparty"

STUDIO_FLOW_SID = "FW***"
AUTH = {username: ENV["TWILIO_ACCOUNT_SID"], password: ENV["TWILIO_AUTH_TOKEN"]}
DATE_CREATED_FROM = "2019-09-01T000000Z"
DATE_CREATED_TO = "2019-10-01T000000Z"

# Retrieves all executions in the given date range
executions_url = "https://studio.twilio.com/v1/Flows/#{STUDIO_FLOW_SID}/Executions?DateCreatedFrom=#{DATE_CREATED_FROM}&DateCreatedTo=#{DATE_CREATED_TO}"
response = HTTParty.get(executions_url, basic_auth: AUTH)

# If I can get the individual execution from the IVR {{flow.data}}
# that would be ideal
execution = response.parsed_response["executions"].first

execution_context_url = execution["links"]["execution_context"]
execution_context = HTTParty.get(execution_context_url, basic_auth: AUTH)

# Or, if I could work backwards and get the execution context ID from
# the call somehow, that would work too.
call_sid = execution_context.parsed_response["context"]["trigger"]["call"]["CallSid"]

steps = HTTParty
  .get(execution["links"]["steps"], basic_auth: AUTH)
  .parsed_response["steps"]
  .sort_by { |step| step["date_created"] }
  .map { |step| step["transitioned_to"] }
  .select { |step| step.include?("option") || step.include?("menu") }

puts [call_sid, steps].inspect

tl; dr — мне либо нужна информация о выполнении потока, переданная в виджете HTTP Request, либо мне нужно работать в обратном направлении от CallSid, чтобы получить шаги выполнения.


person jc00ke    schedule 04.10.2019    source источник


Ответы (2)


Евангелист разработчиков Twilio здесь.

Доступ к Sid выполнения можно получить в данных потока в разделе flow.sid.

Этого не было в документации, но я только что добавил его сюда: https://www.twilio.com/docs/studio/user-guide#context-variables

Примечание. {{flow.sid}} в настоящее время не отображается в автозаполнении Studio, но я обещаю, что он есть!

person philnash    schedule 08.10.2019
comment
Есть ли способ работать в обратном направлении от вызова к выполнению? Я ничего не вижу в документах API. - person jc00ke; 26.11.2019
comment
Боюсь нет. - person philnash; 27.11.2019

Я нашел способ получить выполнение от вызова:

В любом случае, если вы вызываете функцию из Studio, лучше ответить на филнаш :)

person ricardo    schedule 02.12.2020