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;
}
}
如果你正在创建一个Web应用程序,你需要添加一个URL到你的Twitter应用程序页面。它不用于回调,但如果你将来使用AspNetAuthorizer,可能有助于避免401。
看起来你在某个地方有一个NullReferenceException。ex.ToString()表示什么?
初始化后再次检查CredentialStore,以确保填充所有4个凭据。AccessToken和AccessTokenSecret来自您的Twitter应用程序页面。
searchResponse是否包含任何值?对空集合调用FirstOrDefault将返回null。