Twilio GetNextPage 通过 SMS 日志分页
Twilio GetNextPage to page through SMS logs
我正在尝试从 Twilio 检索过去 6 个月的所有 SMS 日志并将它们插入 table。去年,Twilio 弃用了绝对分页,取而代之的是相对分页。任何使用 TwilioMessageListRequest.PageNumber
的尝试都会失败,并会出现警告,改为使用 GetNextPage and GetPreviousPage
。但是,我找不到有关它们使用的任何文档。我最接近盲目拼凑的是:
var request = new MessageListRequest();
var scheck = new TwilioListBase();
scheck.PageSize = 1000;
request.DateSentComparison = ComparisonType.GreaterThanOrEqualTo;
request.DateSent = DateTime.Today.Subtract(TimeSpan.FromDays(180));
var messages = twilio.ListMessages(request);
while(scheck.NextPageUri != null)
{
foreach (var message in messages.Messages)
{
string body = message.Body.ToString();
SMS_Logs newLog = new SMS_Logs();
newLog.Sid = message.Sid;
newLog.DateSent = message.DateSent;
newLog.To = message.To;
newLog.From = message.From;
newLog.Body = message.Body;
newLog.Status = message.Status;
newLog.ErrorCode = message.ErrorCode;
newLog.ErrorMessage = message.ErrorMessage;
db.SMS_Logs.InsertOnSubmit(newLog);
}
twilio.GetNextPage();
}
但是,这行不通。目前,我收到错误 "No overload for method 'GetNextPage' takes 0 arguments"。我显然缺少 GetNextPage
的必需组件,但到目前为止,我一直无法弄清楚那是什么。对我在这里忽略的内容的任何解释将不胜感激。
这似乎与以下问题重复:
在 API 资源管理器中尝试一下:https://www.twilio.com/console/dev-tools/api-explorer/sms/sms-mms-list
C#中的例子:
using System;
using Twilio;
class Example
{
static void Main (string [] args)
{
// Find your Account Sid and Auth Token at twilio.com/user/account
string AccountSid = "";
string AuthToken = "";
var twilio = new TwilioRestClient (AccountSid, AuthToken);
var request = new MessageListRequest ();
var messages = twilio.ListMessages (request);
while (messages.NextPageUri != null) {
foreach (var message in messages.Messages) {
Console.WriteLine (message.Body);
}
messages = twilio.GetNextPage<MessageResult> (messages);
}
}
}
当您遍历列表时,帮助程序库将自动从 API 中获取,直到处理完所有符合您条件的记录。
您可以使用 MessageListRequest 限制结果。
我正在尝试从 Twilio 检索过去 6 个月的所有 SMS 日志并将它们插入 table。去年,Twilio 弃用了绝对分页,取而代之的是相对分页。任何使用 TwilioMessageListRequest.PageNumber
的尝试都会失败,并会出现警告,改为使用 GetNextPage and GetPreviousPage
。但是,我找不到有关它们使用的任何文档。我最接近盲目拼凑的是:
var request = new MessageListRequest();
var scheck = new TwilioListBase();
scheck.PageSize = 1000;
request.DateSentComparison = ComparisonType.GreaterThanOrEqualTo;
request.DateSent = DateTime.Today.Subtract(TimeSpan.FromDays(180));
var messages = twilio.ListMessages(request);
while(scheck.NextPageUri != null)
{
foreach (var message in messages.Messages)
{
string body = message.Body.ToString();
SMS_Logs newLog = new SMS_Logs();
newLog.Sid = message.Sid;
newLog.DateSent = message.DateSent;
newLog.To = message.To;
newLog.From = message.From;
newLog.Body = message.Body;
newLog.Status = message.Status;
newLog.ErrorCode = message.ErrorCode;
newLog.ErrorMessage = message.ErrorMessage;
db.SMS_Logs.InsertOnSubmit(newLog);
}
twilio.GetNextPage();
}
但是,这行不通。目前,我收到错误 "No overload for method 'GetNextPage' takes 0 arguments"。我显然缺少 GetNextPage
的必需组件,但到目前为止,我一直无法弄清楚那是什么。对我在这里忽略的内容的任何解释将不胜感激。
这似乎与以下问题重复:
在 API 资源管理器中尝试一下:https://www.twilio.com/console/dev-tools/api-explorer/sms/sms-mms-list
C#中的例子:
using System;
using Twilio;
class Example
{
static void Main (string [] args)
{
// Find your Account Sid and Auth Token at twilio.com/user/account
string AccountSid = "";
string AuthToken = "";
var twilio = new TwilioRestClient (AccountSid, AuthToken);
var request = new MessageListRequest ();
var messages = twilio.ListMessages (request);
while (messages.NextPageUri != null) {
foreach (var message in messages.Messages) {
Console.WriteLine (message.Body);
}
messages = twilio.GetNextPage<MessageResult> (messages);
}
}
}
当您遍历列表时,帮助程序库将自动从 API 中获取,直到处理完所有符合您条件的记录。
您可以使用 MessageListRequest 限制结果。