Google Coordinate API验证脱机
本文关键字:脱机 验证 API Coordinate Google | 更新日期: 2023-09-27 18:30:04
尝试验证Google坐标api。尝试了服务帐户身份验证服务帐户,并发布了带有此问题的堆栈流。找到了这个答案,很好地描述了我的问题。
现在的问题是所使用的库已被弃用。无法执行的解决方案表示。
var auth = new OAuth2Authenticator<WebServerClient> (provider, GetAuthorization);
// Create the service.
var service = new CoordinateService(new BaseClientService.Initializer()
{
Authenticator = auth
});
有人能提出实现上述代码的方法吗。我已经为Google API OAuth2客户端库安装了新版本。但没有发现任何类似的代码。
我可以使用下面的代码片段来读取api
using Google.Apis.Auth.OAuth2;
using Google.Apis.Coordinate.v1;
using Google.Apis.Coordinate.v1.Data;
using Google.Apis.Services;
using (var stream = new FileStream(System.Web.HttpContext.Current.Server.MapPath(@"../client_secret.json"), FileMode.Open, FileAccess.Read))
{
credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(GoogleClientSecrets.Load(stream).Secrets,
new[] { CoordinateService.Scope.Coordinate },
"user", CancellationToken.None);
}
// Create the service.
var service = new CoordinateService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "test",
});
//builds with time last day 12 am
var locationReq = service.Location.List(teamId, workerMail, (ulong)DateTime.Today.AddDays(-1).ToUniversalTime().Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
var locationResult = locationReq.Execute();
但是这种方法第一次重新使用重定向。在我的情况下我不能那样做。因此需要离线解决方案。
需要首先使用浏览器实例进行身份验证,并且可以对所有其他请求重复使用相同的"刷新令牌"。我们可以提供一个自定义的文件夹位置来存储"auth令牌",库将使用该文件夹中存储的令牌。修改后的源代码粘贴在下面:
using (var stream = new FileStream(@"client_secret.json", FileMode.Open, FileAccess.Read))
{
credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(GoogleClientSecrets.Load(stream).Secrets,
new[] { CoordinateService.Scope.Coordinate },
"user", CancellationToken.None,new FileDataStore(folder));
}
MG
看起来您使用的是一个非常旧的库版本(GA之前)。
我建议您下载最新的Coordinate API,它在NuGet-https://www.nuget.org/packages/Google.Apis.Coordinate.v1/.
然后,按照入门和OAuth 2.0页面进行操作。您应该在那里找到所有正确的文档,如果缺少什么,请告诉我们。在我们的问题跟踪器中打开一个问题。