2017-04-20 6 views
0

私はtwilioから1か月のメッセージログをpythonで取得しようとしています。以下のコードは1日か2日の検索で正常に動作しますが、日付範囲を拡張すると非常に遅くなります。これを行うより良い方法はありますか?twilioのエクスポートメッセージは、Pythonを介してCSVにログします

import pandas as pd 
from datetime import date 
from twilio.rest import Client 

# Your Account Sid and Auth Token from twilio.com/user/account 
account_sid = "####" 
auth_token = "####" 
client = Client(account_sid, auth_token) 


messages = client.messages.list(
    date_sent_after=date(2017, 3, 1), 
    date_sent_before=date(2017, 3, 2) 
) 


d = [] 
for message in messages: 
    d.append((message.from_, message.to, message.body, message.status, 
    message.date_sent, message.price)) 

print(d) 

df = pd.DataFrame(d, columns=('From', 'To', 'Body', 'Status', 'Sent Date', 'Price')) 


print(df.dtypes) 

df.to_csv('export.csv', index=False, encoding='utf-8') 

答えて

0

ここではTwilioの開発者エバンジェリストです。

私はここで少しトリックをしています。あなたは実際にget CSVs straight from Twilioです。必要な作業は、データのURLを作成してから、最後に.csvを追加するだけです。

編集

あなたがMessages resourceをチェックアウトする必要がありますあなたのメッセージのためのURLを構築します。あなたは、あなたのアカウントにURLを要求する必要があります

https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Messages

やCSVにそれを有効にするには、ちょうど.csv

https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Messages.csv

を追加します。

リストはURLでありますSIDおよび認証トークンを認証として使用し、任意のクエリパラメータをURLの末尾に追加することができます。

は、2017年1月3日の後のあなたの例のように、日付範囲を行うにして2017年2月3日の前に、あなたのURLは次のようになります。

https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Messages.csv?DateSent>=2017-03-01&DateSent<=2017-03-02

チェックアウトlisting messages with curlの例を見てこれはより詳細に説明されています。

+0

このURLを構築する方法についてもう少し明確に説明できますか?私はどのように日付範囲を含めるか分からない。ありがとう。 – pzale

+0

URLとパラメータの詳細については、私の答えが更新されました。 – philnash

関連する問題