C# 中的 Twitter API,无需 POP 授权对话框

本文关键字:POP 授权 对话框 无需 中的 Twitter API | 更新日期: 2023-09-27 18:32:31

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

我希望工作在不弹出授权对话框的情况下启动。有没有办法在不弹出任何对话框的情况下调用推特 api?

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

C# 中的 Twitter API,无需 POP 授权对话框

您可以使用单用户授权或称为仅应用程序授权的较新功能。下面是如何使用 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));
    }

对 Invaliding 的调用被注释掉了,但您需要为此设置一个计时器,Twitter 的经验法则是每 15 分钟左右使持有者令牌无效一次。

LINQ to Twitter 站点也有关于单用户授权的文档。网站上有一个示例页面,可下载的源代码有工作演示。顺便说一句,Twitter 用户令牌通常永远不会过期,因此您可以存储并继续使用相同的令牌。

乔,就像一个魅力!非常感谢您努力在不那么友好的 REST 接口之上构建如此优雅的解决方案。仍在寻找不同的搜索条件:)

不可以,如果没有用户交互,控制台应用将无法授权。 授权的全部意义在于用户必须采取措施以允许应用程序使用其帐户。

相信我,你真的不希望任何应用程序能够在未经你明确许可的情况下控制你的Twitter帐户。 :)