2017-12-15 17 views
1

私はTwilioチュートリアルに従ってiOSプロジェクトを設定しています。それはバックエンドを必要とするので、私は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レスポンスを直接与えることができるのだろうかと思っていました。何かのように、 'Model'オブジェクトを作成し、その応答を渡すと' JSONifying'が処理されます。とにかく、少なくとも今はこれを選ぶべきだと思う。 (y) – Nina

0

Twilioの開発者エバンジェリスト。

JSONレスポンスをアプリケーションにプロキシしたい場合は、Twilioライブラリを避け、JSON APIエンドポイントにリクエストを行い、レスポンスを直接送信するほうが簡単です。

@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 

それがすべてで助けなら、私を知ってみましょう:あなたはこのような何かをするだろうPythonのRequests librarylist of callsを得るために例えば

、。