dan*_*sgo 1 .net c# google-api google-spreadsheet-api google-drive-api
我想制作一个使用Google Drive API的网络应用程序来访问位于其Google云端硬盘上的朋友的电子表格.它将读取/写入工作表,但仅此而且只有该工作表.我只想说,过去两天我一直在阅读Google Drive API的文档,但几乎没有显示它.我无法理解它,无论我读了多少个例子,因为API与示例所示的不匹配.我发现使用OAuth2.0进行身份验证时必须有4-5种不同的方式,但是没有一种方法可以使用我从NuGet包管理器(这是谷歌说要获取最新API)的Drive API.没有任何意义.OAuth2Parameters类不存在,所以我不知道如何使用google给出的示例进行身份验证.类似的方式与其他示例相同,例如谷歌的DrEdit.谁能提供一些见解?电子表格将由我的朋友(我必要时)主持,网络应用程序将由免费服务托管,例如AppHarbor.非常感谢你.
我刚刚尝试了快速入门指南中的代码,使用Google.Apis.Drive.v2nuget软件包完全没有任何问题.正如你所说,auth有很多不同的方法,而quckstart中的代码不适合Web应用程序,但它们都应该与最新的SDK一起提供.有关详细信息,请参阅Web服务器授权页面
我想在OAuth2Parameters类属于"老" GDATA方法谷歌的API; 使用它的示例可能适用于旧版本的Drive SDK.
我不想在我的测试中创建一个文件,因此我将示例代码调整为仅列出文件:
using System;
using System.Threading;
using Google.Apis.Auth.OAuth2;
using Google.Apis.Drive.v2;
using Google.Apis.Services;
class Test
{
static void Main(string[] args)
{
UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets
{
ClientId = /* YOUR CLIENT ID HERE */,
ClientSecret = /* YOUR CLIENT SECRET HERE */,
},
new[] { DriveService.Scope.Drive },
/* USER TO AUTHORIZE */,
CancellationToken.None).Result;
var service = new DriveService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "Stack Overflow Drive test",
});
var response = service.Files.List().Execute();
foreach (var item in response.Items)
{
Console.WriteLine(item.Title);
}
}
}
Run Code Online (Sandbox Code Playgroud)