1

我正在尝试从 Twilio 检索过去 6 个月的所有 SMS 日志并将它们插入到表中。去年,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();
        }

然而,这是行不通的。就目前而言,我收到错误“方法'GetNextPage'没有重载需要0个参数”。我显然缺少 的必需组件GetNextPage,但到目前为止,我一直无法弄清楚那是什么。对我在这里忽略的任何解释将不胜感激。

4

1 回答 1

2

这似乎与以下问题重复: Any examples of getnextpage usage in the twilio api for c#?

从 API Explorer 尝试一下: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 限制结果。

于 2016-06-28T23:49:25.710 回答