<Twilio/Python> jsonify 调用日志
<Twilio/Python> jsonify call logs
我正在按照 Twilio 教程设置 iOS 项目。由于它需要后端,我选择了 Python(我是一名 iOS 开发人员,对 Python 有 'zero' 知识)所以这个问题可能是一个愚蠢的问题,但是我没有找到正确的语法。
Objective:
获取所有通话记录和会议记录 & return 它们作为 JSON 响应。
我的代码:
@app.route('/getRecordings', methods=['GET'])
def getRecordings():
client = Client(ACCOUNT_SID, ACCOUNT_AUTH_TOKEN)
recordings = []
for record in client.calls.list():
recordings.append(record.sid)
conferences = []
for conf in client.conferences.list():
conferences.append(conf.sid)
return jsonify(calls=recordings, conferences=conferences)
响应:
我得到了正确的响应,因为我只附加了每个调用的 SID 属性。
{
"calls": [
"CAxxx",
"CAxxx",
],
"conferences": [
"CFxxx",
"CFxxx",
]
}
但我想获取每条记录的完整详细信息,如 Twilio 示例的输出选项卡所示(参考:https://www.twilio.com/docs/api/voice/conference)
当我尝试JSON验证记录时,它说它不能JSON验证这种类型的object。
我知道我应该将 object 转换为模型并附加它,但我该怎么做?非常感谢任何有助于排序的链接或线索。
您需要创建一个包含所需值的字典列表。像这样:
for record in client.calls.list():
call = {"account_sid": record.account_sid, "api_version": record.api_version, "date_created": record.date_created, "etc": record.etc}
recordings.append(call)
那应该会给你如下回复:
{
"calls": [
{
"accound_sid": "1234",
"api_version": "2010-04-01",
"date_created": "Wed, 18 Aug 2010 20:20:06 +0000",
"etc": "etc",
},
{
"accound_sid": "4321",
"api_version": "2010-04-01",
"date_created": "Wed, 18 Aug 2010 20:20:06 +0000",
"etc": "etc",
}
]
}
此处为 Twilio 开发人员布道师。
如果您希望将完整的 JSON 响应代理到您的应用程序,那么您可能会发现避免使用 Twilio 库并向 JSON API 端点发出请求会更容易,并且直接发送回复。
例如,要获得 list of calls with Python's Requests library,您可以这样做:
@app.route('/getCalls', methods=['GET'])
def getCalls():
url = 'https://api.twilio.com/2010-04-01/Accounts/YOUR_ACCOUNT_SID/Calls/.json'
request = requests.get(url, auth=(YOUR_ACCOUNT_SID, YOUR_AUTH_TOKEN)
resp = Response(response=request.text,
status=200,
mimetype="application/json")
return resp
如果有帮助请告诉我。
我正在按照 Twilio 教程设置 iOS 项目。由于它需要后端,我选择了 Python(我是一名 iOS 开发人员,对 Python 有 'zero' 知识)所以这个问题可能是一个愚蠢的问题,但是我没有找到正确的语法。
Objective: 获取所有通话记录和会议记录 & return 它们作为 JSON 响应。
我的代码:
@app.route('/getRecordings', methods=['GET'])
def getRecordings():
client = Client(ACCOUNT_SID, ACCOUNT_AUTH_TOKEN)
recordings = []
for record in client.calls.list():
recordings.append(record.sid)
conferences = []
for conf in client.conferences.list():
conferences.append(conf.sid)
return jsonify(calls=recordings, conferences=conferences)
响应: 我得到了正确的响应,因为我只附加了每个调用的 SID 属性。
{
"calls": [
"CAxxx",
"CAxxx",
],
"conferences": [
"CFxxx",
"CFxxx",
]
}
但我想获取每条记录的完整详细信息,如 Twilio 示例的输出选项卡所示(参考:https://www.twilio.com/docs/api/voice/conference) 当我尝试JSON验证记录时,它说它不能JSON验证这种类型的object。
我知道我应该将 object 转换为模型并附加它,但我该怎么做?非常感谢任何有助于排序的链接或线索。
您需要创建一个包含所需值的字典列表。像这样:
for record in client.calls.list():
call = {"account_sid": record.account_sid, "api_version": record.api_version, "date_created": record.date_created, "etc": record.etc}
recordings.append(call)
那应该会给你如下回复:
{
"calls": [
{
"accound_sid": "1234",
"api_version": "2010-04-01",
"date_created": "Wed, 18 Aug 2010 20:20:06 +0000",
"etc": "etc",
},
{
"accound_sid": "4321",
"api_version": "2010-04-01",
"date_created": "Wed, 18 Aug 2010 20:20:06 +0000",
"etc": "etc",
}
]
}
此处为 Twilio 开发人员布道师。
如果您希望将完整的 JSON 响应代理到您的应用程序,那么您可能会发现避免使用 Twilio 库并向 JSON API 端点发出请求会更容易,并且直接发送回复。
例如,要获得 list of calls with Python's Requests library,您可以这样做:
@app.route('/getCalls', methods=['GET'])
def getCalls():
url = 'https://api.twilio.com/2010-04-01/Accounts/YOUR_ACCOUNT_SID/Calls/.json'
request = requests.get(url, auth=(YOUR_ACCOUNT_SID, YOUR_AUTH_TOKEN)
resp = Response(response=request.text,
status=200,
mimetype="application/json")
return resp
如果有帮助请告诉我。