首页 > 解决方案 > C# MVC Google OAuth API 2 示例代码不起作用

问题描述

所以我正在创建 ac# mvc 应用程序,并尝试访问一些谷歌 API(即:谷歌分析)。

我跟着他们的教程: https ://developers.google.com/api-client-library/dotnet/guide/aaa_oauth

第一个问题:

       public async Task IndexAsync(CancellationToken cancellationToken)
        {
            var result = await new AuthorizationCodeMvcApp(this, new AppFlowMetadata()).
                AuthorizeAsync(cancellationToken);

            if (result.Credential != null)
            {
                var service = new DriveService(new BaseClientService.Initializer
                    {
                        HttpClientInitializer = result.Credential,
                        ApplicationName = "ASP.NET MVC Sample"
                    });

                // YOUR CODE SHOULD BE HERE..
                // SAMPLE CODE:
                var list = await service.Files.List().ExecuteAsync();
                ViewBag.Message = "FILE COUNT IS: " + list.Items.Count();
                return View();
            }
            else
            {
                return new RedirectResult(result.RedirectUri);
            }
        }
    }

是他们说用于家庭控制器的功能....但是它出错了,因为您不能仅使用任务返回 View(),我将其更改为

Task<ActionResult>

它奏效了。

但最后一个问题是,它无限重定向..我猜是因为如果凭据 = null,它会尝试重定向回来?

此页面无法正常工作 accounts.google.com 将您重定向的次数过多。尝试清除您的 cookie。ERR_TOO_MANY_REDIRECTS

我逐字逐句地复制了示例代码,但我一生都无法弄清楚为什么它没有返回凭据,或者是否有其他问题。

标签: c#google-apigoogle-oauthgoogle-api-dotnet-client

解决方案


推荐阅读