首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linq-To-Twitter错误的身份验证

Linq-To-Twitter错误的身份验证
EN

Stack Overflow用户
提问于 2013-01-31 00:27:45
回答 1查看 1.3K关注 0票数 1

因此,我一直在使用Linq- to -Twitter将Twitter集成添加到我的Windows 8应用商店应用程序中,更多的是为了玩弄它,但我遇到了一个问题。我当前的身份验证代码块是

代码语言:javascript
复制
  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();
        }

它工作得很好,除非我进入身份验证屏幕并单击左上角的back按钮,退出身份验证而不提供详细信息。在这一点上,我得到了一个TwitterQueryException:错误的身份验证数据:

代码语言:javascript
复制
                var timelineResponse =
                 (from tweet in twitterCtx.Status
                  where tweet.Type == StatusType.Home
                  select tweet)
                 .ToList();

显然,因为身份验证信息是错误的,所以我正在尝试找到一种方法,以便在身份验证失败/退出时停止继续执行其余代码。

我已经尝试了简单的布尔检查,但没有效果。几个小时以来,我一直在思考这个问题,所以如果有任何帮助,我将不胜感激。非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-01 00:12:10

在执行任何其他操作之前,您可以查询Account.VerifyCredentials以确保用户已登录。下面是一个例子:

代码语言:javascript
复制
        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错误代码。它还将Message设置为Twitter返回的错误消息。InnerException为底层异常提供了原始的堆栈跟踪,这通常是因为从Twitter返回的WebException错误代码而抛出的堆栈。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14608860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档