我提到了Mwangi Kabiru发表的Twilio博客:
https://www.twilio.com/blog/serverless-whatsapp-chatbot-python-google-cloud-functions-twilio
可能的解决方案针对Actions模式测试您的JSON响应(https://carnelian-neanderthal-8008.twil.io/assets/actionsSchema.JSON)
如何下载在Google Cloud函数上创建的webhook的JSON文件,并根据Twilio Actions模式对其进行测试?有人能帮我解决这个问题吗?
谷歌云功能代码:
import gspread
from oauth2client.service_account import ServiceAccountCredentials
from datetime import datetime
import requests
from twilio.twiml.messaging_response import MessagingResponse
def whatsapp_webhook(request):
'''
HTTP Cloud Function.
Parameters
----------
request (flask.Request) : The request object.
<https://flask.palletsprojects.com/en/1.1.x/api/#incoming-request-data>
Returns
-------
The response text, or any set of values that can be turned into a
Response object using `make_response`
<https://flask.palletsprojects.com/en/1.1.x/api/#flask.make_response>.
'''
# google drive json dictionary
data = {
#json details generated by Google Cloud Platform
}
# use creds to create a client to interact with the Google Drive API
scope = ['https://spreadsheets.google.com/feeds', 'https://www.googleapis.com/auth/drive']
creds = ServiceAccountCredentials.from_json_keyfile_dict(data, scope)
client = gspread.authorize(creds)
# Find a workbook by name and open the first sheet
# Make sure you use the right name here.
wb = client.open("Covid_DB")
sheet = wb.worksheet('Oxygen')
#Checking whether Google Cloud is able to access Google Sheets
row = ['Google Sheet Accessed successfully', ':)']
index = 9
sheet.insert_row(row, index)
#Sending the required info to the user
twilio_response = MessagingResponse()
msg = twilio_response.message()
msg.body('1) ' + ', '.join(sheet.row_values(2)) + ' 2) ' + ', '.join(sheet.row_values(3)))
return str(twilio_response)
谷歌云功能日志
Twilio错误日志
Twilio's-task-option-1-request
当通过redirect
从Twilio Autopilot调用URL时,需要为Twilio Autopilot返回JSON,而不是Twiml。
您需要更改构建返回消息的部分:
twilio_response = MessagingResponse()
msg = twilio_response.message()
msg.body('1) ' + ', '.join(sheet.row_values(2)) + ' 2) ' + ', '.join(sheet.row_values(3)))
return str(twilio_response)
在此处返回JSON:
from flask import jsonify
body = {
'actions': [
{
'say': '1) ' + ', '.join(sheet.row_values(2)) + ' 2) ' + ', '.join(sheet.row_values(3))
},
{
'listen': True
}
]
}
return jsonify(body)
有关Twilio Autopilot支持的操作列表,请参见“操作概述”。
聊天机器人:嘿,你介意回答几个问题吗? 顾客:如果是,继续提问/如果不是,向顾客致谢并停止对话。 我在Twilio Autopilot上使用了示例调查机器人,但它实际上没有“if/else”场景。如果Twilio没有它,那么还有其他适合于此的聊天机器人吗?
我正在使用带有可编程语音的Twilio自动驾驶仪作为输入通道,我想记录客户端与机器人的整个对话。 我在哪里以及如何做到这一点? 我正在使用重定向到Autopilot URL的twiML bin。
9.17 自动驾驶 感知算法实习 一面 自我介绍 ResNet数学原理 one two stage网络代表和区别 SSD yolo Faster RCNN roi pooling和roi algin torch动态图 python装饰器 CaDDN流程 DETR流程 DETR3D deformable attention mmcv中的hook runner机制 反向传播 mAP计算 9.21 二面