Linq-to-Twitter 身份验证错误
本文关键字:错误 身份验证 Linq-to-Twitter | 更新日期: 2023-09-27 17:56:37
所以我一直在使用Linq-To-Twitter将Twitter集成添加到我的Windows 8商店应用程序中,此外,我遇到了一个问题。我当前的身份验证代码块是
var auth = new WinRtAuthorizer
{
Credentials = new LocalDataCredentials
{
ConsumerKey = "",
ConsumerSecret = ""
},
UseCompression = true,
Callback = new Uri("http://linqtotwitter.codeplex.com/")
};
if (auth == null || !auth.IsAuthorized)
{
await auth.AuthorizeAsync();
}
这很好用,除非我进入身份验证屏幕并单击左上角的后退按钮,以退出身份验证而不提供详细信息。 此时,我得到一个TwitterQueryException: 错误的身份验证数据:
var timelineResponse =
(from tweet in twitterCtx.Status
where tweet.Type == StatusType.Home
select tweet)
.ToList();
显然,因为身份验证信息错误,我正在尝试找到一种方法,如果身份验证失败/被回退,则停止继续执行其余代码。
我尝试过简单的布尔检查,但没有效果。几个小时以来,我一直在融化我的大脑,所以任何帮助将不胜感激。谢谢一堆!
您可以查询 Account.VerifyCredentials 以确保用户在执行任何其他操作之前已登录。下面是一个示例:
const int BadAuthenticationData = 215;
var twitterCtx = new TwitterContext(auth);
try
{
var account =
(from acct in twitterCtx.Account
where acct.Type == AccountType.VerifyCredentials
select acct)
.SingleOrDefault();
await new MessageDialog(
"Screen Name: " + account.User.Identifier.ScreenName,
"Verification Passed")
.ShowAsync();
}
catch (TwitterQueryException tqEx)
{
if (tqEx.ErrorCode == BadAuthenticationData)
{
new MessageDialog(
"User not authenticated",
"Error During Verification.")
.ShowAsync();
return;
}
throw;
}
您的错误处理策略与此不同,这只是一个示例,但它向您展示了如何知道发生了错误,并让您有机会在恢复正常操作之前对问题做出反应。
TwitterQueryException 将在 ErrorCode 属性中包含 Twitter 错误代码。它还将消息设置为Twitter返回的错误消息。InnerException 为底层异常提供了原始堆栈跟踪,这通常是由于从 Twitter 返回的 HTTP 错误代码而引发的 WebException。