Twitter を検索するバックグラウンド タスクとして実行されるコンソール アプリを作成したいと考えています。
承認ダイアログをポップアップ表示せずにジョブを開始したい。ダイアログがポップアップせずに Twitter API を呼び出す方法はありますか?
アプリケーションのみの認証を使用する必要があることがわかりました。アプリケーションのみの認証の良い例はどこにありますか
シングル ユーザー認証またはアプリケーションのみの認証と呼ばれる新しい機能を使用できます。LINQ to Twitterでアプリケーションのみを実行する方法の例を次に示します。
private static void HandleApplicationOnlyAuthentication()
{
var auth = new ApplicationOnlyAuthorizer
{
Credentials = new InMemoryCredentials
{
ConsumerKey = ConfigurationManager.AppSettings["twitterConsumerKey"],
ConsumerSecret = ConfigurationManager.AppSettings["twitterConsumerSecret"]
}
};
auth.Authorize();
//auth.Invalidate();
var twitterCtx = new TwitterContext(auth);
var srch =
(from search in twitterCtx.Search
where search.Type == SearchType.Search &&
search.Query == "LINQ to Twitter"
select search)
.SingleOrDefault();
Console.WriteLine("\nQuery: {0}\n", srch.SearchMetaData.Query);
srch.Statuses.ForEach(entry =>
Console.WriteLine(
"ID: {0, -15}, Source: {1}\nContent: {2}\n",
entry.StatusID, entry.Source, entry.Text));
}
Invalidate の呼び出しはコメント アウトされていますが、タイマーを設定する必要があります。Twitter の経験則では、ベアラー トークンは 15 分程度ごとに無効化されます。
LINQ to Twitter サイトには、Single User Authorizationに関するドキュメントもあります。このサイトにはサンプルページがあり、ダウンロード可能なソース コードには動作するデモが含まれています。ところで、Twitter ユーザー トークンは通常、期限切れになることはないため、同じトークンを保存して引き続き使用することができます。
Joe, works like a CHARM! Thanks a lot for you efforts to build such elegant solution on top of not so friendly REST interface. Still looking for different search criteria :)