【问题标题】:OAuth issues with Google Console APIGoogle Console API 的 OAuth 问题
【发布时间】:2020-07-25 03:43:59
【问题描述】:

我希望有人可以帮助我获得 google API 的身份验证。
这是我正在尝试使用的代码,

   var credentials = await GoogleWebAuthorizationBroker.AuthorizeAsync(secrets, new string[] { WebmastersService.Scope.Webmasters }, "user", CancellationToken.None);

如果我在本地尝试,我得到一个(预期的)无法从这个 localhost/authorize url 连接。 如果我从部署的站点尝试它,它会超时并给出 502

有什么建议吗? 提前致谢

我在 OAuth2 操场上取得了成功,但不确定我在这里缺少什么。

【问题讨论】:

    标签: c# google-api google-api-dotnet-client google-search-api


    【解决方案1】:

    GoogleWebAuthorizationBroker.AuthorizeAsync 专为与已安装的应用程序一起使用而设计。它会在运行代码的机器的浏览器上生成同意屏幕。如果您尝试部署,这将尝试在服务器上打开同意屏幕,这将无法正常工作。

    服务帐号

    这是对这个问题的另一个答案的回应。

    如果您要使用服务帐户,我建议使用 .json 密钥文件而不是 p12,因为 google 正在取消 p12 文件

    GoogleCredential credential;
    using (var stream = new FileStream(serviceAccountCredentialFilePath, FileMode.Open, FileAccess.Read))
    {
         credential = GoogleCredential.FromStream(stream).CreateScoped(scopes);
                    }
    
                    
    

    【讨论】:

    • 非常感谢,您能否指出我从 C# dotnet 核心应用程序调用他们的 API 的正确方向,我似乎无法通过身份验证。
    • 我希望我可以尝试让它与 asp .net 核心一起工作一段时间 stackoverflow.com/q/62791294/1841839
    【解决方案2】:

    在玩了这么久之后,我终于用下面的代码让它工作了: 非常感谢您帮助我了解发生了什么。

     var serviceAccountEmail = "matrixtools-argos@matrixtools-argos.iam.gserviceaccount.com";
    
                var certificate = new X509Certificate2(@"C:\Users\key.p12", "notasecret", X509KeyStorageFlags.Exportable);
    
                var credentials = new ServiceAccountCredential(
                            new ServiceAccountCredential.Initializer(serviceAccountEmail)
                            {
                                Scopes = new[] { WebmastersService.Scope.WebmastersReadonly }
                            }.FromCertificate(certificate));
    

    【讨论】:

    • 那是服务帐户身份验证,它只会让您访问单个帐户。它不会让您访问其他用户的数据。
    猜你喜欢
    • 1970-01-01
    • 2016-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多