有关c#的twilio api中getnextpage用法的任何示例?

我为Twilioinheritance的旧代码使用MessageListRequest的绝对PageNumber属性检索消息,但根据文档,这已经过时,我应该使用GetNextPage和GetPrevPage。

API元数据显示已过时,消息“使用GetNextPage和GetPreviousPage进行分页。页面参数计划在生命周期结束时使用https://www.twilio.com/engineering/2015/04/16/replacing-absolute-paging- with-relative-paging “。

有没有这种用法的例子? 除了API测试方法之外,我在文档中找不到任何内容,我不确定如何以此示例作为指南处理多个页面。

public class Foo : TwilioBase { public string Bar { get; set; } } public class FooResult : TwilioListBase { public List Foos { get; set; } } [Test] public void ShouldGetNextPage() { IRestRequest savedRequest = null; FooResult firstPage = new FooResult(); firstPage.NextPageUri = new Uri("/Foos?PageToken=abc123", UriKind.Relative); mockClient.Setup(trc => trc.Execute(It.IsAny())) .Callback((request) => savedRequest = request) .Returns(new FooResult()); var client = mockClient.Object; var response = client.GetNextPage(firstPage); mockClient.Verify(trc => trc.Execute(It.IsAny()), Times.Once); Assert.IsNotNull(savedRequest); Assert.AreEqual("/Foos?PageToken=abc123", savedRequest.Resource); Assert.AreEqual(Method.GET, savedRequest.Method); Assert.IsNotNull(response); } 

旧的用法可能看起来像这样:

 var twilio = new TwilioRestClient(config.AccountSid, config.AuthToken); var result = new List(); MessageResult tempResult; int page = 0; do { var request = new MessageListRequest(); request = new MessageListRequest { Count = 1000, DateSent = newestDate, DateSentComparison = ComparisonType.GreaterThanOrEqualTo, PageNumber = page++, To = config.FromNumber }; tempResult = twilio.ListMessages(request); result.AddRange(tempResult.Messages); } while (tempResult.NextPageUri != null); 

最后,我从twilio-csharp GitHub项目而不是NuGet构建了Twilio API 3.4.1.0,因为我需要更新它以使用尚未包含在API中的MessagingServiceSid。

谢谢你的任何指示。 如果我可以自己解决问题,我会发布一个解决方案。

实际上,我现在就开始工作了!

 MessageResult messages = twilio.ListMessages(request); do { if (messages.Messages != null) { foreach (var message in messages.Messages) { ... process results } if (messages.NextPageUri != null) { messages = twilio.GetNextPage(messages); } } } while (messages.NextPageUri != null); 

您是否尝试过API Explorer中的示例? https://www.twilio.com/console/dev-tools/api-explorer/sms/sms-mms-list

 var twilio = new TwilioRestClient(AccountSid, AuthToken); // Build the parameters var options = new MessageListRequest(); var messages = twilio.ListMessages(options); foreach (var message in messages.Messages) { Console.WriteLine(message.Body); } 

当您遍历列表时, 帮助程序库将自动从API中获取,直到处理完所有符合条件的记录。

您可以使用MessageListRequest限制结果。

请尝试一下,让我知道它是怎么回事。