错误:" invalid_grant ",描述:" ",Uri: " ",而从我的本地机器使用服务帐户



在使用本地机器的服务帐户时出现以下错误

错误:

invalid_grant ", Description: " ", Uri: " " .

参见下面的代码-

 string[] scopes = new string[] {
    AnalyticsService.Scope.Analytics
 }; // view and manage your Google Analytics data
 var keyFilePath = @
 "c:xxxxxxx.p12"; // Downloaded from https://console.developers.google.com
 var serviceAccountEmail = "xxxxx@developer.gserviceaccount.com"; // found https://console.developers.google.com
 //loading the Key file
 var certificate = new X509Certificate2(keyFilePath, "notasecret", X509KeyStorageFlags.Exportable);
 var credential = new ServiceAccountCredential(new ServiceAccountCredential.Initializer(serviceAccountEmail) {
    Scopes = scopes
 }.FromCertificate(certificate));
 var service = new AnalyticsService(new BaseClientService.Initializer() {
    HttpClientInitializer = credential,
    ApplicationName = "Analytics API Sample",
 });
 string profileId = "xxxxxx";
 DataResource.RealtimeResource.GetRequest request = service.Data.Realtime.Get(String.Format("ga:{0}", profileId), "rt:activeUsers");
 RealtimeData feed = request.Execute();

invalid_grant有两个常见的原因。

    您的服务器时钟与NTP不同步。(解决方法:检查服务器时间,如果不正确,修复它。)
  • 刷新令牌已超过限制。(解决方案:你无能为力,他们不能有更多的刷新令牌在使用)应用程序可以请求多个刷新令牌。例如,在用户希望在多台机器上安装应用程序的情况下,这很有用。在这种情况下,需要两个刷新令牌,每个安装一个。当刷新令牌的数量超过限制时,旧的令牌将失效。如果应用程序试图使用无效的刷新令牌,则返回invalid_grant错误响应。每对唯一的OAuth 2.0客户端和刷新令牌的限制是25个(注意,此限制可能会更改)。如果应用程序继续为相同的客户机/帐户对请求刷新令牌,一旦发出第26个令牌,先前发出的第一个刷新令牌将失效。第27个请求的刷新令牌将使先前发出的第二个令牌无效,依此类推。

我也读到第三个,如果你不包括access_type=offline在你的请求。我从来没有遇到过这个问题

相关内容

  • 没有找到相关文章

最新更新