Описание тега linq-to-twitter
LINQ to Twitter - это сторонний поставщик LINQ с открытым исходным кодом (библиотека Twitter) для службы микроблогов Twitter. Он использует стандартный синтаксис LINQ для запросов и включает вызовы методов для изменений через API Twitter.
пример
Следующий запрос возвращает результаты поиска, в которых люди пишут в Твиттере о LINQ to Twitter:
var twitterCtx = new TwitterContext(...);
var searchResponse =
await
(from search in twitterCtx.Search
where search.Type == SearchType.Search &&
search.Query == "\"LINQ to Twitter\""
select search)
.SingleOrDefaultAsync();
if (searchResponse != null && searchResponse.Statuses != null)
searchResponse.Statuses.ForEach(tweet =>
Console.WriteLine(
"User: {0}, Tweet: {1}",
tweet.User.ScreenNameResponse,
tweet.Text));
С точки зрения опыта программирования, TwitterContext
type аналогичен Entity Framework DBContext
. Вы используетеTwitterContext
пример, twitterCtx
, чтобы получить доступ IQueryable<T>
категории твитов. В приведенном выше примереSearch
даст вам возможность искать в Твиттере твиты, удовлетворяющие некоторым критериям.
Примечание. Многоточие в параметрах TwitterContext указывает на то, что вам необходимо предоставить авторизатору необходимые учетные данные. Вы можете посетить раздел "Защита приложений" для получения документации по авторизаторам и посетить страницу загрузки для ознакомления с рабочими примерами.
Каждая категория запроса имеет Type
свойство для типа твитов, которые вы хотите вернуть. Например,Status
твиты могут быть сделаны для Home
, Mentions
, или User
сроки. Каждая категория запроса также имеетXxxType
enum, чтобы помочь вам выяснить, что доступно. В приведенном выше примере используетсяSearchType.Search
для выполнения поисков. Другой пример:Status
запросы, которые могут иметь StatusType.Home
как его Type
. На случай, еслиSearch
запросы, Search
это единственный вариант, но Type
идиома одинакова для всех категорий запросов.
Как и другие поставщики LINQ, вы получаете IQueryable<T>
назад из запроса. Вы можете увидеть, как материализовать запрос, вызвавSingleOrDefaultAsync
оператор. ЗаSearch
результаты, вы получите один Search
сущность, содержащая информацию о Search
запрос и Search
сущность содержит Statuses
свойство, которое является коллекцией Status
сущности. По другим запросам вы бы материализовали запрос с помощьюToListAsync
для множественных результатов. Как и другие поставщики LINQ, LINQ to Twitter выполняет отложенное выполнение, поэтому такие операторы, какToListAsync
а также SingleOrDefaultAsync
или такие заявления, как for
а также foreach
циклы вызовут выполнение запроса и вызовут фактический вызов Twitter.
Последняя версия LINQ to Twitter поддерживает асинхронный режим. Вы можете увидеть это в приведенном выше кодеawait's
запрос, используя SingleOrDefaultAsync
оператор. Команды также асинхронны. напримерawait TweetAsync("Hello from LINQ to Twitter")
.
Дополнительные сведения о том, как работает LINQ to Twitter, можно найти на странице Выполнение вызовов API для конкретных примеров API. Загружаемый исходный код также содержит множество примеров в проектах. Просто загляните в папку Samples.
Ресурсы
NuGet
Помимо возможности загрузки с этого сайта, вы также можете автоматически установить LINQ to Twitter в свои проекты Visual Studio через NuGet;
PM> Установочный пакет linqtotwitter
Доступный набор функций
Для получения дополнительной информации:
- подписывайтесь на @JoeMayo для выпусков и связанных сообщений в блогах.
- следуйте @Linq2Twitr для получения более подробной информации о проекте.