没有pop授权对话框的c#中的twitter api

时间:2013-09-24 13:51:22

标签: c# twitter

我想编写一个控制台应用程序,作为后台任务运行,搜索twitter。

我希望在没有弹出授权对话框的情况下开始工作。有没有办法可以在没有弹出任何对话框的情况下调用twitter api?

我刚刚发现我需要使用仅应用程序身份验证。我在哪里可以找到仅应用程序身份验证的好例子

3 个答案:

答案 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帐户。 :)