2017-12-15 11 views
1

iOS 프로젝트를 설정하기 위해 Twilio 자습서를 따르고 있습니다. 백엔드가 필요하기 때문에 필자는 Python을 선택했습니다. (저는 Python에 대한 '제로'지식이있는 iOS 개발자입니다.) 따라서 질문은 아마 바보 같을 수도 있지만 찾을 적절한 구문을 얻지 못합니다.<Twilio/Python> jsonify 통화 기록

목적 : 모든 통화 로그를 가져 컨퍼런스 로그 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)에서이 샘플의 출력 탭에서와 같이 나는 각 레코드의 전체 세부 사항을 좀하고 싶습니다 내가 기록을 JSONify하려고하면, 그것은 그것이를 JSONify 수 없다고 이 유형의 객체.

개체를 모델로 변환하고 추가해야한다는 것을 알고 있지만 어떻게해야합니까? 이러한 링크를 얻는 데 도움이되는 링크 나 리드는 많은 도움이됩니다.

답변

1

사전 목록을 필요한 값으로 만들어야합니다. 이런 식으로 뭔가 :

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", 
    } 
    ] 
} 
+0

도움 주셔서 감사합니다. Twilio/Python에서 JSON 응답을 직접 제공 할 수 있을지 궁금합니다. 뭔가,'모델'개체를 생성하고 그것에 응답을 전달하고, 그것은'JSONifying'을 처리 할 것입니다. 어쨌든, 적어도 지금은 이것을 선택해야한다고 생각합니다. (와이) – Nina

0

Twilio 개발자 전도사.

응용 프로그램에 전체 JSON 응답을 프록시하려는 경우 Twilio 라이브러리를 피하고 JSON API 끝점에 요청을 보내고 응답을 바로 보내면됩니다.

예를 들어, 파이썬의 Requests librarylist of calls 당신은 같은 것을 할 것입니다 얻을 :

@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 

는 전혀 도움이되는지 알려주세요.