В своем блоке Chatfuel я собираю {{user input}} и отправляю JSON в веб-перехватчик Zapier. Все идет нормально. После этого мой локальный Pyhon успешно читает этот JSON из хранилища Zapier.
url = 'https://store.zapier.com/api/records?secret=password'
response = urllib.request.urlopen(url).read().decode('utf-8')
data = json.loads(response)
и проанализируйте его, сгенерировав еще один JSON в качестве вывода:
json0={
"messages": [
{"text": analysis_output}]
}
Затем Python3 отправляет этот JSON в веб-перехватчик GET в Zapier:
import requests
r = requests.post('https://hooks.zapier.com/hooks/catch/2843360/8sx1xl/', json=json0)
r.status_code
Zapier Webhook успешно получает JSON и отправляет его в хранилище.
Устанавливаются пары ключ-значение, а затем Chatfuel пытается прочитать из хранилища:
GET https://store.zapier.com/api/records?secret=password2
Но полученная структура JSON неверна, что было проверено с помощью этого кода:
url = 'https://store.zapier.com/api/records?secret=password2'
response = urllib.request.urlopen(url).read().decode('utf-8')
data = json.loads(response)
data
который возвращает:
{'messages': "text: Didn't know I could order several items"}
когда правильный для работы Chatfuel должен быть:
{'messages': [{"text: Didn't know I could order several items"}]}
То есть есть две основные проблемы:
1) В JSON отсутствует " { [ "
2) JSON добавляет новую информацию к существующей вместо создания нового JSON, из-за чего JSON состоит из 5 разных частей.
Я ищу возможные решения для этой проблемы.