Google oauth.net如何获取有效凭证?

Google oauth.net如何获取有效凭证?,.net,oauth,gmail-api,google-api-dotnet-client,.net,Oauth,Gmail Api,Google Api Dotnet Client,我试图从中创建一个示例,但无法获得有效的凭据。 在OAuth回调控制器中,我重写了IndexAsync方法。但我有授权码。我的销售代币每次都是假的。并且结果result.Credential的值为空 public override async Task<ActionResult> IndexAsync(AuthorizationCodeResponseUrl authorizationCode, CancellationToken taskCancellationToken)

我试图从中创建一个示例,但无法获得有效的凭据。 在OAuth回调控制器中,我重写了IndexAsync方法。但我有授权码。我的销售代币每次都是假的。并且结果
result.Credential的值为空

public override async Task<ActionResult> IndexAsync(AuthorizationCodeResponseUrl authorizationCode, CancellationToken taskCancellationToken)
    {
        var result = await new AuthorizationCodeMvcApp(this, new AppFlowMetadata()).
            AuthorizeAsync(taskCancellationToken);

     --> **result.Credential == null**

        var service = new GmailService(new BaseClientService.Initializer
        {
            HttpClientInitializer = result.Credential,
            ApplicationName = "ASP.NET MVC Sample"
        });
        UsersResource.LabelsResource.ListRequest request = service.Users.Labels.List("me");

        IList<Label> labels = request.Execute().Labels;

        var a = request;
        return View();
    }
public override async Task IndexAsync(AuthorizationCodeResponseUrl authorizationCode,CancellationToken taskCancellationToken)
{
var result=wait new AuthorizationCodeMvcApp(这是新的AppFlowMetadata())。
AuthorizeAsync(taskCancellationToken);
-->**result.Credential==null**
var service=new-GmailService(new-BaseClientService.Initializer
{
HttpClientInitializer=result.Credential,
ApplicationName=“ASP.NET MVC示例”
});
UsersResource.LabelsResource.ListRequest请求=service.Users.Labels.List(“me”);
IList labels=request.Execute().labels;
var a=请求;
返回视图();
}

我做错了什么

正如您所说,您正在使用。使用OAuth2.0访问Google API有一个基本模式。它遵循4个步骤:

  • 从Google开发者控制台获取OAuth 2.0凭据
  • 从Google授权服务器获取访问令牌
  • 将访问令牌发送到API
  • 如有必要,刷新访问令牌
有关详细信息,您可以按照以下教程进行操作:

您必须访问Google开发者控制台才能获得OAuth 2.0凭据,例如Google和您的应用程序都知道的客户端ID和客户端机密


除了@Tholle-answer之外,还需要完成以下步骤。只需完成本页其余部分中描述的步骤,大约五分钟后,您将拥有一个简单的.NET控制台应用程序,可以向Gmail API发出请求。

正如您所说,您正在使用。使用OAuth2.0访问Google API有一个基本模式。它遵循4个步骤:

  • 从Google开发者控制台获取OAuth 2.0凭据
  • 从Google授权服务器获取访问令牌
  • 将访问令牌发送到API
  • 如有必要,刷新访问令牌
有关详细信息,您可以按照以下教程进行操作:

您必须访问Google开发者控制台才能获得OAuth 2.0凭据,例如Google和您的应用程序都知道的客户端ID和客户端机密


除了@Tholle-answer之外,还需要完成以下步骤。只需完成页面其余部分中描述的步骤,大约五分钟后,您将拥有一个简单的.NET控制台应用程序,该应用程序可以向Gmail API发出请求。

因此,如果没有更多信息,很难判断这里出了什么问题,但我也遇到了同样的问题,这正是导致我出现问题的原因

AppFlowMetadata创建GoogleAuthorizationCodeFlow的新实例。这将获取一个初始值设定项对象,并在该对象内定义用于存储令牌的数据存储

如果您没有定义该数据存储,或者如果该数据存储中的某些内容无法正常工作,因此无法存储令牌,则会导致每次凭证返回null的行为


因此,我将开始检查您的数据存储是否正确配置。

因此,如果没有更多信息,很难判断这里出了什么问题,但我也遇到了同样的问题,这就是导致我出现问题的原因

AppFlowMetadata创建GoogleAuthorizationCodeFlow的新实例。这将获取一个初始值设定项对象,并在该对象内定义用于存储令牌的数据存储

如果您没有定义该数据存储,或者如果该数据存储中的某些内容无法正常工作,因此无法存储令牌,则会导致每次凭证返回null的行为


因此,我将开始检查您的数据存储是否正确配置。

您是否偶然发现了这一有用信息?是的,但这是控制台应用程序的示例。我正在使用asp.net mvc和OAuth。你有没有偶然发现这个有用的东西?是的,但这个例子是针对控制台应用程序的。我正在使用asp.NETMVC和OAuth。嘿,伙计,这是一个非常糟糕的答案。盖伊在谷歌的例子中遇到了一个问题,你给了他一些通用信息和不相关的链接(对于MVC应用,“已安装应用程序”的教程是无用的——他使用了官方文档)。这不是一个建设性的或有帮助的答案——“只需阅读文档”没有帮助嘿,伙计,这是一个非常糟糕的答案。按照谷歌的例子,盖伊遇到了一个问题,你给了他一些一般信息和不相关的链接(对于MVC应用,“已安装应用程序”的教程是无用的——他使用了官方文档)。这不是一个建设性的或有帮助的回答——“只需阅读文档”没有帮助