Google API 生成令牌时授权访问被拒绝
Google API authorization access denied while generating token
我在生成令牌时遇到了 google API 的一些问题。该代码在本地机器上运行良好,但发布版本出现 "Access is denied" 错误。我知道这一定与文件夹的权限有关,但我不知道如何解决。其实我们的授权函数是这样的:
public static DriveService AuthenticateOauth(string clientId, string clientSecret, string userName)
{
String folder = System.Web.HttpContext.Current.Server.MapPath("/App_Data/MyGoogleStorage/");
string[] scopes = new string[] { DriveService.Scope.Drive };
// here is where we Request the user to give us access, or use the Refresh Token that was previously stored in %AppData%
UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(new ClientSecrets { ClientId = clientId, ClientSecret = clientSecret }
, scopes
, userName
, CancellationToken.None
, new FileDataStore(folder)).Result;
DriveService service = new DriveService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "Drive API",
});
return service;
}
该网站是用 ASP NET MVC 5 编写的,托管在 Azure 网站上。
感谢您的帮助。
The code works fine in the local machine but the publish version gives "Access is denied" error.
我将 Web 应用程序部署到 Azure 网站后遇到了同样的问题。
我参考了 this article 中的“Web 应用程序 (ASP.NET MVC)”部分来获取用户凭据并使用 DriveService,我发现它在 Azure 网站上运行良好。
我最终决定只使用我自己的驱动器帐户。所以我创建了一个令牌,并且一直在使用它。我关注了这些主题:
1.- 为 Google 驱动器 API 创建一个令牌:
2.- 将 Google API 正确添加到 MVC 并使用我们的令牌:
GoogleWebAuthorizationBroker in MVC For Google Drive Access
一定要小心,有些步骤很容易卡住。
这仅适用于具有一个驱动器帐户的 ASP NET MVC 应用程序。我知道不是直接解决问题,这种方式就避免了。希望对你有帮助。
我在生成令牌时遇到了 google API 的一些问题。该代码在本地机器上运行良好,但发布版本出现 "Access is denied" 错误。我知道这一定与文件夹的权限有关,但我不知道如何解决。其实我们的授权函数是这样的:
public static DriveService AuthenticateOauth(string clientId, string clientSecret, string userName)
{
String folder = System.Web.HttpContext.Current.Server.MapPath("/App_Data/MyGoogleStorage/");
string[] scopes = new string[] { DriveService.Scope.Drive };
// here is where we Request the user to give us access, or use the Refresh Token that was previously stored in %AppData%
UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(new ClientSecrets { ClientId = clientId, ClientSecret = clientSecret }
, scopes
, userName
, CancellationToken.None
, new FileDataStore(folder)).Result;
DriveService service = new DriveService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "Drive API",
});
return service;
}
该网站是用 ASP NET MVC 5 编写的,托管在 Azure 网站上。
感谢您的帮助。
The code works fine in the local machine but the publish version gives "Access is denied" error.
我将 Web 应用程序部署到 Azure 网站后遇到了同样的问题。
我参考了 this article 中的“Web 应用程序 (ASP.NET MVC)”部分来获取用户凭据并使用 DriveService,我发现它在 Azure 网站上运行良好。
我最终决定只使用我自己的驱动器帐户。所以我创建了一个令牌,并且一直在使用它。我关注了这些主题:
1.- 为 Google 驱动器 API 创建一个令牌:
2.- 将 Google API 正确添加到 MVC 并使用我们的令牌: GoogleWebAuthorizationBroker in MVC For Google Drive Access
一定要小心,有些步骤很容易卡住。
这仅适用于具有一个驱动器帐户的 ASP NET MVC 应用程序。我知道不是直接解决问题,这种方式就避免了。希望对你有帮助。