Twilioの継承した古いコードは、MessageListRequestの絶対PageNumberプロパティを使用してメッセージを取得しますが、ドキュメントによればこれは廃止されており、GetNextPageとGetPrevPageを使用する必要があります。twinio APIのgetnextpageの使用例は何ですか?
APIメタデータには、「ページングにGetNextPageとGetPreviousPageを使用する」というメッセージが表示されています。ページパラメータの有効期限は、https://www.twilio.com/engineering/2015/04/16/replacing-absolute-paging-with-relative-pagingです。
この使用例はありますか?私は、APIのテストメソッドの1つを除いて、ドキュメント内で何も見つけることができませんでした。このサンプルを複数のページに処理することがどれほどうまくいくかわかりません。
public class Foo : TwilioBase
{
public string Bar { get; set; }
}
public class FooResult : TwilioListBase
{
public List<Foo> 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<FooResult>(It.IsAny<IRestRequest>()))
.Callback<IRestRequest>((request) => savedRequest = request)
.Returns(new FooResult());
var client = mockClient.Object;
var response = client.GetNextPage<FooResult>(firstPage);
mockClient.Verify(trc => trc.Execute<FooResult>(It.IsAny<IRestRequest>()), Times.Once);
Assert.IsNotNull(savedRequest);
Assert.AreEqual("/Foos?PageToken=abc123", savedRequest.Resource);
Assert.AreEqual(Method.GET, savedRequest.Method);
Assert.IsNotNull(response);
}
古い用法はそうのようになります。私はどのMessagingServiceSidを使用するためにそれを更新する必要があるため
var twilio = new TwilioRestClient(config.AccountSid, config.AuthToken);
var result = new List<Message>();
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);
は最後に、私はNuGetの代わりにtwilio-csharp GitHub projectからTwilioのAPI 3.4.1.0を建てまだAPIには含まれていません。
ありがとうございます。もし私が自分でそれを理解できれば、私は解決策を投稿します。
結果の最後のページを見逃すことはありませんか?最後のページをヒットすると、messages = twilio.GetNextPageが呼び出されますが、すぐに "while"句にヒットします。 messages.NextPageUriは、もはやifにヒットした時と同じ値を持ちません。 –