我想编写一个控制台应用程序,作为后台任务运行,搜索twitter。
我希望在没有弹出授权对话框的情况下开始工作。有没有办法可以在没有弹出任何对话框的情况下调用twitter api?
我刚刚发现我需要使用仅应用程序身份验证。我在哪里可以找到仅应用程序身份验证的好例子
答案 0 :(得分:2)
您可以使用单用户授权或更新的名为Application-Only授权的功能。以下是如何使用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的文档。网站上有一个Samples页面,downloadable source code有正在进行的演示。 BTW,Twitter用户令牌一般不会过期,因此您可以存储并继续使用相同的令牌。
答案 1 :(得分:0)
Joe,像CHARM一样工作!非常感谢您在不太友好的REST界面上构建如此优雅的解决方案。仍在寻找不同的搜索条件:)
答案 2 :(得分:-1)
不,您的控制台应用无法在没有用户互动的情况下进行授权。授权的全部内容是用户必须采取措施允许应用程序使用其帐户。
相信我,如果没有您的明确许可,您真的不希望任何应用程序能够控制您的Twitter帐户。 :)