Linq2Twitter单用户授权空值异常

本文关键字:授权 空值 异常 用户 单用户 Linq2Twitter | 更新日期: 2023-09-27 17:53:01

我一直在开发一个内部ASP。. NET web表单应用于我们的业务,其中一个要求是在我们的门户主页上向所有用户显示我们的Twitter提要。

为此,我决定最好使用LinqToTwitter单用户授权来获取每个人的状态,而无需验证他们自己的帐户。

我目前的主要问题是,当我们使用auth对象来获取TwitterContext时,它在TwitterContext上返回一个错误,说

Value cannot be null

我已经在http://dev.twitter.com上检查了我们的twitter应用程序设置,并且我有正确的消费者密钥/令牌和访问密钥/令牌。该应用的权限设置为只读。在http://dev.twitter.com网站上没有指定回调URL,因为它目前在我们的内部系统上(所以它无论如何都无法返回)。这就是问题所在吗?我是否需要转发一些端口并允许回调通过我们的开发机器?

下面是谨慎的代码。在我看来,这没有什么问题。我知道它被设置为.FirstOrDefault,这只是为了看看它是否实际上得到了任何东西(它没有)。

谢谢你给的任何帮助!:)

private async Task GetTweets()
{
    var auth = new SingleUserAuthorizer
    {
        CredentialStore = new SingleUserInMemoryCredentialStore
        {
            ConsumerKey = ConfigurationManager.AppSettings["consumerKey"],
            ConsumerSecret = ConfigurationManager.AppSettings["consumerSecret"],
            AccessToken = ConfigurationManager.AppSettings["accessToken"],
            AccessTokenSecret = ConfigurationManager.AppSettings["accessTokenSecret"],
        }
    };
    try
    {
        using (TwitterContext twitterContext = new TwitterContext(auth))
        {
            var searchResponse = await (from c in twitterContext.Status
                                        where c.Type == StatusType.User
                                        && c.ScreenName == "my_screenname"
                                        select c).ToListAsync();
            Tb_home_news.Text = searchResponse.FirstOrDefault().Text;
        }
    }
    catch (Exception ex)
    {
        Tb_home_news.Text = ex.Message;
    }
}

Linq2Twitter单用户授权空值异常

如果你正在创建一个Web应用程序,你需要添加一个URL到你的Twitter应用程序页面。它不用于回调,但如果你将来使用AspNetAuthorizer,可能有助于避免401。

看起来你在某个地方有一个NullReferenceException。ex.ToString()表示什么?

初始化后再次检查CredentialStore,以确保填充所有4个凭据。AccessToken和AccessTokenSecret来自您的Twitter应用程序页面。

searchResponse是否包含任何值?对空集合调用FirstOrDefault将返回null。