View on GitHub

LinqToTwitter

LINQ Provider for the Twitter API (C# Twitter Library)

Listing Direct Message Events

Show direct message events information. Includes DMs to and from a user.

Entity: DirectMessageEvents

Type: DirectMessageEventsType.List

Parameters/Filters:
Name Purpose Type Required
Count Number of items to return for a single page. int no
Cursor Supports paging through results on List queries. string no
v4.x Example:
            int count = 10; // intentionally set to a low number to demo paging
            string cursor = "";
            List<DMEvent> allDmEvents = new List<DMEvent>();

            // you don't have a valid cursor until after the first query
            DirectMessageEvents dmResponse =
                await
                    (from dm in twitterCtx.DirectMessageEvents
                     where dm.Type == DirectMessageEventsType.List &&
                           dm.Count == count
                     select dm)
                    .SingleOrDefaultAsync();

            allDmEvents.AddRange(dmResponse.Value.DMEvents);
            cursor = dmResponse.Value.NextCursor;

            while (!string.IsNullOrWhiteSpace(cursor))
            {
                dmResponse =
                    await
                        (from dm in twitterCtx.DirectMessageEvents
                         where dm.Type == DirectMessageEventsType.List &&
                               dm.Count == count &&
                               dm.Cursor == cursor
                         select dm)
                        .SingleOrDefaultAsync();

                allDmEvents.AddRange(dmResponse.Value.DMEvents);
                cursor = dmResponse.Value.NextCursor;
            }

            if (!allDmEvents.Any())
            {
                Console.WriteLine("No items returned");
                return;
            }

            Console.WriteLine($"Response Count: {allDmEvents.Count}");
            Console.WriteLine("Responses:");

            allDmEvents.ForEach(evt =>
            {
                MessageCreate msgCreate = evt.MessageCreate;

                if (evt != null && msgCreate != null)
                    Console.WriteLine(
                        "From ID: {0}\nTo ID:  {1}\nMessage Text: {2}",
                        msgCreate.SenderID ?? "None",
                        msgCreate.Target?.RecipientID ?? "None",
                        msgCreate.MessageData?.Text ?? "None");
            });

Twitter API: direct_messages/events/list