2

Twilio Rest APIを使用して、 MVC.netを使用して通話ログのリストを取得しようとしています。次のコードを使用すると、最新の50件の呼び出ししか取得できません。すべての呼び出しを返し、選択したとおりにフィルタリングしたいと思います。

@using Twilio;
@{
    // Set our AccountSid and AuthToken
    string sid = "AC123";
    string token = "abcd";

    // Instantiate a new Twilio Rest Client
    var client = new TwilioRestClient(sid, token);    

    // Get Recent Calls
    var calls = client.ListCalls();

    if (calls.RestException != null) 
    {
        Response.Write(string.Format("Error: {0}", calls.RestException.Message));
        Response.End();
    }    
}
<h1>Call Log</h1>
@foreach (var call in calls.Calls) {
    <p>Call from @call.From to @call.To at @call.StartTime of length @call.Duration</p>
}

通話履歴からすべての通話を返すにはどうすればよいですか?

4

1 に答える 1

3

Callメソッドは、デフォルトのページサイズが50である呼び出しのページリストを返します。

したがって、pageNumberを指定できる場所ListCallsをとるオーバーロードを使用してページングを実行する必要があります。CallListRequest

すべての呼び出しをページオーバーする方法の例を次に示します。

var client = new TwilioRestClient(sid, token);    

var pageNumber = 0;
var totalPages = 1;

var allCalls = new List<Call>();

while(pageNumber < totalPages)
{
    var calls = client.ListCalls(new CallListRequest { PageNumber = pageNumber });

    if (calls.RestException != null) 
    {
         Response
             .Write(string.Format("Error: {0}", calls.RestException.Message));
         Response.End();
         break;
    }  
    allCalls.AddRange(calls.Calls);
    totalPages = calls.NumPages;
    pageNumber++;        
} 
于 2012-09-14T18:16:13.867 に答える