Twilio Python Helper Library-返されたリソースリストのページの数をどのように知るのですか?
質問
Pythonヘルパーライブラリを使用して、Twilioからコール詳細情報をダウンロードする簡単なスクリプトを作成しようとしています。これまでのところ、私の唯一のオプションは、.iter()メソッドを使用して、サブアカウントに対してこれまでに行われたすべての呼び出しを取得することです。これは非常に多くの数字になる可能性があります。
.list()リソースを使用している場合、ページカウントをどこにも提供していないようであるため、期間中にすべての呼び出しを獲得するためにページングを継続する時間がわかりません。何が足りないの?
コードサンプルを備えたドキュメントは次のとおりです。http://readthedocs.org/docs/twilio-python/en/latest/usage/basics.html
解決 2
コメントに記載されているように、上記のコードは動作しませんでした。Lesting_messages= client.calls.count()は常に50を返し、ページングにはまったく役に立たない。
代わりに、私はそれが失敗するまで次のページを試すことになりましたが、これはかなりハッキーです。ライブラリには、ページング用のリストリソースに実際にナンパージを含める必要があります。
import twilio.rest
import csv
account = <ACCOUNT_SID>
token = <ACCOUNT_TOKEN>
client = twilio.rest.TwilioRestClient(account, token)
csvout = open("calls.csv","wb")
writer = csv.writer(csvout)
current_page = 0
page_size = 50
started_after = "20111208"
test = True
while test:
try:
calls_page = client.calls.list(page=current_page, page_size=page_size, started_after=started_after)
for calls in calls_page:
writer.writerow( (calls.sid, calls.to, calls.duration, calls.start_time) )
current_page += 1
except:
test = False
他のヒント
現時点ではあまり文書化されていませんが、次のAPI呼び出しを使用して、リストを介してページを使用できます。
import twilio.rest
client = twilio.rest.TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN)
# iterating vars
remaining_messages = client.calls.count()
current_page = 0
page_size = 50 # any number here up to 1000, although paging may be slow...
while remaining_messages > 0:
calls_page = client.calls.list(page=current_page, page_size=page_size)
# do something with the calls_page object...
remaining_messages -= page_size
current_page += 1
あなたは渡すことができます page
と page_size
の議論 list()
どの結果が表示されるかを制御する機能。これをより明確にするために、今日ドキュメントを更新します。
所属していません StackOverflow