Linq2Twitter導入メモ
Linq2Twitter導入
Linq2Twitterとは
ゴール
とにかくtwitterの発言をとってくる
方針
公式の以下を参考に検索結果を取得する
LINQ to Twitter - Documentation
手順
インストールから。
- NuGetでいれる
Install-Package linqtotwitter
- 必要なアセンプリをNuGetで追加
Install-Package microsoft.net.Http- 参考7. I'm receiving an error on assemblies named System.Net.Http... when trying to build.
Install-Package前にapp.configに以下を追加してたが、NuGetのが先なら不要なはず
<configuration>
<!--
既存要素
-->
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.29.0" newVersion="4.2.29.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
- Twitterのtoken取得
- 今ならhttps://apps.twitter.comにいって取得。詳細は割愛
- 必要なのは以下の4つ(っぽい)
- ConsumerKey
- ConsumerSecret
- AccessToken
- AccessTokenSecret
- 認証するなら他にも必要なのかも?
- 公式を参考にして実装 ← LINQ to Twitter - Documentation
結果
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using LinqToTwitter;
namespace Linq2TwWrapper
{
public class Tw
{
public async void GetTweets()
{
var auth = new SingleUserAuthorizer
{
CredentialStore = new SingleUserInMemoryCredentialStore
{
ConsumerKey = "",
ConsumerSecret = "",
AccessToken = "",
AccessTokenSecret = ""
}
};
var twCtx = new TwitterContext(auth);
var searchResponse = await (from search in twCtx.Search
where search.Type == SearchType.Search &&
search.Query == "\"hkdnet\""
select search).SingleOrDefaultAsync();
if (searchResponse != null && searchResponse.Statuses != null)
searchResponse.Statuses.ForEach(tweet =>
Console.WriteLine(
"User: {0}, Tweet: {1}",
tweet.User.ScreenNameResponse,
tweet.Text));
}
}
}
↓
User: HKDnet, Tweet: Interstellarを完全にInstallerに空目した User: HKDnet, Tweet: library直接使うのよくないかなって思ってクッション書いてるんだけど特にクッション書く必要ない気がしてきて非常にアレ User: HKDnet, Tweet: 「働きたくない気持ちに年齢は関係ないだろ!」ってフレーズがふと頭に ...
残課題
- あるユーザーのタイムラインを取得する
- 発言する
- favる
- retweetする
- とかなんとか