Twilio Python Helper Library-返されたリソースリストのページの数をどのように知るのですか?

StackOverflow https://stackoverflow.com/questions/8392491

  •  28-10-2019
  •  | 
  •  

質問

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

あなたは渡すことができます pagepage_size の議論 list() どの結果が表示されるかを制御する機能。これをより明確にするために、今日ドキュメントを更新します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top