使用驱动器API访问Google驱动器电子表格

本文关键字:驱动器 Google 电子表格 访问 API | 更新日期: 2023-09-27 18:27:01

我想制作一个web应用程序,该应用程序使用Google Drive API访问朋友位于其Google Drive上的电子表格。它将在纸上读/写,但仅限于那张纸。可以说,我花了两天时间阅读Google Drive API的文档,几乎没有什么要展示的。无论我读了多少示例,我都无法理解它,因为API与示例不匹配。我发现OAuth2.0的身份验证必须有4-5种不同的方法,但没有一种能与我从NuGet软件包管理器获得的Drive API一起工作(谷歌说在这里获得最新的API)。没有什么道理。OAuth2Parameters类不存在,所以我不知道如何使用谷歌给出的示例进行身份验证。类似的方法在其他例子中得到了相同的结果,比如谷歌的DrEdit。有人能提供一些见解吗?AppHarbor表示,电子表格将由我的朋友(如有必要,我)托管,网络应用程序将由免费服务托管。非常感谢。

使用驱动器API访问Google驱动器电子表格

我刚刚尝试了quickstart指南中的代码,使用Google.Apis.Drive.v2 nuget包,它工作起来没有任何问题。正如您所说,有很多不同的身份验证方法,quckstart中的代码不适合web应用程序,但它们都应该与最新的SDK一起提供。有关详细信息,请参阅web服务器授权页面。

我认为OAuth2Parameters类属于Google API的"旧"gdata方法;使用它的示例可能是旧版本的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);
        }
    }
}