我可以使用我在身份验证后获得的凭据对Google驱动器进行身份验证和执行操作,但此令牌已存在很长时间.它说expours-in:3600所以它应该在1小时内到期但是当我在一个月之后尝试它它使用那个令牌并且它起作用了.
我的要求是在身份验证之后,无论正在执行的任务是否完成,如果用户再次启动程序,它应该再次向用户请求身份验证.所以基本上我不希望令牌存储在客户端的系统中.Expires-in对我来说不起作用,因为令牌被刷新并且不再要求身份验证.
下面是我正在使用的代码:
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets
{
ClientId = "<myid>.apps.googleusercontent.com",
ClientSecret = "<Mysecret>"
},
new[] { DriveService.Scope.Drive },
"user",
CancellationToken.None).Result;
// Create the service using the client credentials.
DriveService service = new DriveService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "sampleapp"
});
*****some task performed*********
Run Code Online (Sandbox Code Playgroud)
现在在这个"一些任务"之后,我想让令牌被摧毁.
请帮忙.
我需要通过asp.net mvc4项目从google驱动器获取文件列表.Google云端硬盘用作网站的文件存储空间.我的代码:
const string email = "xxx";
string path = AppDomain.CurrentDomain.BaseDirectory + "file.p12";
var certificate = new X509Certificate2(path,"notasecret", X509KeyStorageFlags.Exportable);
var credential = new ServiceAccountCredential(new ServiceAccountCredential.Initializer(email){
Scopes = new[] { DriveService.Scope.Drive }
}.FromCertificate(certificate));
var service = new DriveService(new BaseClientService.Initializer
{
HttpClientInitializer = credential,
ApplicationName="hikes"
});
List<File> result = new List<File>();
FilesResource.ListRequest request = service.Files.List();
do
{
FileList files = request.Execute();
result.AddRange(files.Items);
request.PageToken = files.NextPageToken;
} while (!String.IsNullOrEmpty(request.PageToken));
Run Code Online (Sandbox Code Playgroud)
试过两个不同的帐户.结果只有一个名为"如何开始使用Drive"的pdf文件.如何访问磁盘文件?
我有一个可运行的.net 4.5.2 Winforms应用程序,该应用程序使用OAuth 2.0和Google DoubleClickBidManager库进行一些API调用。
我需要将其移植到.net 3.5,以便可以将其打包在SSIS中。
Google API使用Async,Await和Task,并使其在3.5中工作,我添加了此 nuget包并修复了很多参考错误。
但是我无法解决这个问题:
谁能给我一些解决办法?
c# ssis task-parallel-library async-await google-api-dotnet-client
我想知道是否有人比我更进一步,通过 .Net 使用 Google 网站管理员工具 API 的新搜索分析功能?
我正在使用 Google.Apis.Webmasters.v3 Nuget 包,并且已经进行了身份验证和连接(使用服务帐户)
但是,我很难通过搜索分析获得任何结果。
我在网上找不到任何代码示例,所以在https://developers.google.com/resources/api-libraries/documentation/webmasters/v3/csharp/latest/annotated.html和很多类信息的指导下的猜测。
这是我正在使用的代码:
SearchanalyticsResource mySearchanalyticsResource = new SearchanalyticsResource(service);
SearchAnalyticsQueryRequest myRequest = new SearchAnalyticsQueryRequest();
myRequest.StartDate = "2015-08-01";
myRequest.EndDate = "2015-08-31";
myRequest.RowLimit = 10;
SearchanalyticsResource.QueryRequest myQueryRequest = mySearchanalyticsResource.Query(myRequest, site.SiteUrl);
SearchAnalyticsQueryResponse myQueryResponse = myQueryRequest.Execute();
Run Code Online (Sandbox Code Playgroud)
当我收到“发生错误,但错误响应无法反序列化”时,它运行正常,直到执行方法。异常详情如下...
Newtonsoft.Json.JsonReaderException {“解析 NaN 值时出错。路径 '',第 0 行,位置 0。”}
任何帮助或代码示例将不胜感激!
.net c# google-api google-api-dotnet-client google-api-webmasters
如何使用驱动器api从get请求中获取单个文件名?
我已经提出了请求但是没有关于该文件的元数据,我只能下载它.
var fileId = "0BwwA4oUTeiV1UVNwOHItT0xfa2M";
var request = driveService.Files.Get(fileId);
Run Code Online (Sandbox Code Playgroud)
显然,这会根据此文档在响应中返回files.get
我只想下载一个文件并显示其名称,而不仅仅是其ID
我是堆栈溢出社区的新手。现在我正在学习 c#(使用 Visual Studio 2012)并致力于在谷歌驱动器中上传文件。
我按照本教程 http://www.daimto.com/google-drive-api-c-upload/ 但遗憾的是我在执行此命令时出错
安装包 Google.Apis.Drive.v2
源 [(Aggregate source)] 无法访问。回退到 C:\Users\Cyclone\AppData\Local\NuGet\Cache Install-Package 处的 NuGet 本地缓存:无法找到包“Google.Apis.Drive.v2”。在 line:1 char:1 + Install-Package Google.Apis.Drive.v2 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~ + CategoryInfo : NotSpecified: (:) [Install-Package], InvalidOperationException +fullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand
我真的不知道问题所在,无法继续我的项目。有人可以向我解释如何解决此错误或在 Google 驱动器中上传文件的任何解决方法。
谢谢你,抱歉英语不好!
我正在使用 Google API .Net 客户端库在 .Net 中使用 Google Drive API 创建应用程序。
在该列表中,请求从根文件夹以及子文件夹和共享文件中获取所有文件。我不想一一列举。我想要仅在根文件夹中可用的文件列表,而不是从子文件夹中可用的文件列表。这怎么可能?
我的代码如下:
FilesResource.ListRequest listRequest = service.Files.List();
var files = listRequest.Execute();
Run Code Online (Sandbox Code Playgroud)
为此,我将范围定义为
var Scopes = { DriveService.Scope.Drive };
Run Code Online (Sandbox Code Playgroud) 我正在使用 .net 包Google.Apis.Sheets.v4 Client Library。一切都很好,但上次(大约一周前)出现错误:The request is missing a valid API key. [403]当我试图batchGet在查询中使用 150 多个范围时。如果我在单个查询中将我的查询拆分为 25 个范围,这可能没问题,也可能在其中一个返回相同的错误。有时它可以在没有任何拆分的情况下工作,但通常我会收到错误消息。我绝对确定我的 API 密钥是有效的,我已经尝试了另一个密钥、另一个电子表格,但没有任何改变。
我正在使用从 Nuget 下载的 Youtube .Net 库。
我创建了一个 Windows 服务,它正在检查一个文件夹以将新视频上传到 youtube。我使用控制台应用程序进行了测试,对于这种情况,用户必须在网络浏览器上手动进行授权,之后我可以毫无问题地将视频上传到 youtube。问题是当我尝试使用离线访问时。
当我在 Windows 服务上运行我的代码时,我无法从用户那里获得手动授权,所以我按照这个答案创建了我的访问令牌:https : //stackoverflow.com/a/20689423/2277059
问题是我没有找到任何使用独立版本的代码示例,所以我有点迷茫。使用我当前的代码,我在尝试上传视频时总是遇到错误:“unauthorized_client”。您可以在我的代码“client_secrets.json”中看到的 JSON 文件是您在为 YouTube API V3 创建凭据时自动生成的文件。
我也试过这个:https : //stackoverflow.com/a/43895931/2277059,但得到了同样的错误。
现在我没有从代码中刷新令牌,只是在 OAuth Playground 上进行并测试服务。一旦成功,我将研究如何在每次查询时刷新令牌。
创建凭据时,我选择了“其他”类型,因为这是 Windows 服务。
是我的代码有问题还是我在配置中遗漏了什么?
这是我的代码:
var token = new TokenResponse()
{
AccessToken = "werwdsgfdg...",
ExpiresInSeconds = 3600,
RefreshToken = "3/dsdfsf...",
TokenType = "Bearer"
};
Log.Info("Generating user credentials and secrets");
UserCredential credential;
string credentialsPath = System.AppDomain.CurrentDomain.BaseDirectory + "client_secrets.json";
using (var stream = new FileStream(credentialsPath, FileMode.Open, FileAccess.Read))
{
credential …Run Code Online (Sandbox Code Playgroud) c# google-api google-oauth google-api-dotnet-client youtube-data-api
我一直在关注Web 应用程序 (ASP.NET MVC) 尝试连接到 Google API 之一。
using System;
using System.Web.Mvc;
using Google.Apis.Auth.OAuth2;
using Google.Apis.Auth.OAuth2.Flows;
using Google.Apis.Auth.OAuth2.Mvc;
using Google.Apis.Drive.v2;
using Google.Apis.Util.Store;
namespace Google.Apis.Sample.MVC4
{
public class AppFlowMetadata : FlowMetadata
{
private static readonly IAuthorizationCodeFlow flow =
new GoogleAuthorizationCodeFlow(new GoogleAuthorizationCodeFlow.Initializer
{
ClientSecrets = new ClientSecrets
{
ClientId = "PUT_CLIENT_ID_HERE",
ClientSecret = "PUT_CLIENT_SECRET_HERE"
},
Scopes = new[] { DriveService.Scope.Drive },
DataStore = new FileDataStore("Drive.Api.Auth.Store")
});
public override string GetUserId(Controller controller)
{
// In this sample we use the session to …Run Code Online (Sandbox Code Playgroud) c# google-api google-api-dotnet-client asp.net-core-mvc .net-core