C# 使用Api密钥C创建驱动器Api服务#
我正在制作一个应用程序,它使用API密钥进行身份验证并使用驱动器API服务。我没有使用其他方法进行身份验证。 这是我的密码C# 使用Api密钥C创建驱动器Api服务#,c#,google-drive-api,drive,C#,Google Drive Api,Drive,我正在制作一个应用程序,它使用API密钥进行身份验证并使用驱动器API服务。我没有使用其他方法进行身份验证。 这是我的密码 var bcs = new BaseClientService.Initializer(); bcs.ApiKey = "38a0f7d505fe18fec64fbf343ecaaaf310dbd744"; bcs.ApplicationName = "sampleApp"; var service = new
var bcs = new BaseClientService.Initializer();
bcs.ApiKey = "38a0f7d505fe18fec64fbf343ecaaaf310dbd744";
bcs.ApplicationName = "sampleApp";
var service = new DriveService(bcs);
// Define parameters of request.
FilesResource.ListRequest listRequest = service.Files.List();
listRequest.PageSize = 10;
listRequest.Fields = "nextPageToken, files(id, name)";
// List files.
IList<Google.Apis.Drive.v3.Data.File> files = listRequest.Execute()
.Files;
Console.WriteLine("Files:");
if (files != null && files.Count > 0)
{
foreach (var file in files)
{
Console.WriteLine("{0} ({1})", file.Name, file.Id);
}
}
else
{
Console.WriteLine("No files found.");
}
Console.Read();
var bcs=new BaseClientService.Initializer();
bcs.ApiKey=“38A0F7D505FE18FEC64FBF343ECAAF310DBD744”;
bcs.ApplicationName=“sampleApp”;
var服务=新的驱动器服务(bcs);
//定义请求的参数。
fileResource.ListRequest ListRequest=service.Files.List();
listRequest.PageSize=10;
listRequest.Fields=“nextPageToken,files(id,name)”;
//列出文件。
IList files=listRequest.Execute()
.档案;
Console.WriteLine(“文件:”);
if(files!=null&&files.Count>0)
{
foreach(文件中的var文件)
{
Console.WriteLine(“{0}({1})”,file.Name,file.Id);
}
}
其他的
{
WriteLine(“未找到任何文件”);
}
Console.Read();
它不起作用。如何使用API密钥进行身份验证?您的应用程序必须使用API密钥来授权请求。不支持其他授权协议。如果您的应用程序使用Google登录,授权的某些方面将为您处理
对驱动器API的所有请求必须由经过身份验证的用户授权
OAuth 2.0的授权过程或“流程”的详细信息根据您编写的应用程序类型有所不同。以下一般流程适用于所有应用程序类型:
- 创建应用程序时,使用注册。谷歌随后会提供您以后需要的信息,如客户ID和客户机密
- 在Google API控制台中激活驱动器API。(如果API未在API控制台中列出,则跳过此步骤。)
- 当您的应用程序需要访问用户数据时,它会要求Google提供特定的访问范围
- 谷歌向用户显示一个同意屏幕,要求用户授权你的应用程序请求他们的部分数据
- 如果用户同意,那么谷歌会给你的应用程序一个短期的访问令牌
- 应用程序请求用户数据,并将访问令牌附加到请求
- 如果Google确定您的请求和令牌有效,它将返回请求的数据
- 创建应用程序时,使用注册。谷歌随后会提供您以后需要的信息,如客户ID和客户机密
- 在Google API控制台中激活驱动器API。(如果API未在API控制台中列出,则跳过此步骤。)
- 当您的应用程序需要访问用户数据时,它会要求Google提供特定的访问范围
- 谷歌向用户显示一个同意屏幕,要求用户授权你的应用程序请求他们的部分数据
- 如果用户同意,那么谷歌会给你的应用程序一个短期的访问令牌
- 应用程序请求用户数据,并将访问令牌附加到请求
- 如果Google确定您的请求和令牌有效,它将返回请求的数据
下面是驱动器API的OAuth 2.0范围信息:也许我回答这个问题有点晚,但这可以帮助未来的人。如果文件夹(我猜您正在尝试获取文件夹中的文件)设置为public,那么您不需要进行身份验证。您可以使用公共API密钥访问它。 解决方案就快到了,它只需要将属性.Q设置为文件夹ID:
Google.Apis.Services.BaseClientService.Initializer bcs = new Google.Apis.Services.BaseClientService.Initializer();
bcs.ApiKey = "38a0f7d505fe18fec64fbf343ecaaaf310dbd744";
bcs.ApplicationName = "sampleApp";
Google.Apis.Drive.v3.DriveService service = new Google.Apis.Drive.v3.DriveService(bcs);
// Define parameters of request.
Google.Apis.Drive.v3.FilesResource.ListRequest listRequest = service.Files.List();
string folderID = "1234567"; //Change this for your folder ID.
listRequest.Q = "'" + folderID + "' in parents";
listRequest.PageSize = 10;
listRequest.Fields = "nextPageToken, files(id, name)";
// List files.
IList<Google.Apis.Drive.v3.Data.File> files = listRequest.Execute().Files;
Console.WriteLine("Files:");
if (files != null && files.Count > 0)
{
foreach (var file in files)
{
Console.WriteLine("{0} ({1})", file.Name, file.Id);
}
}
else
{
Console.WriteLine("No files found.");
}
Console.Read();
要了解有关如何使用“Q”属性的更多信息,请执行以下操作:
这里有一些很好的链接,介绍如何创建公共和私人服务,如何从文件夹中获取文件,以及如何解决文件夹中文件超过1000个的问题:
- 服务:
- 获取文件:
我希望这有帮助 也许我回答这个问题有点晚了,但这可以帮助未来的人。如果文件夹(我猜您正在尝试获取文件夹中的文件)设置为public,那么您不需要进行身份验证。您可以使用公共API密钥访问它。 解决方案就快到了,它只需要将属性.Q设置为文件夹ID:
Google.Apis.Services.BaseClientService.Initializer bcs = new Google.Apis.Services.BaseClientService.Initializer();
bcs.ApiKey = "38a0f7d505fe18fec64fbf343ecaaaf310dbd744";
bcs.ApplicationName = "sampleApp";
Google.Apis.Drive.v3.DriveService service = new Google.Apis.Drive.v3.DriveService(bcs);
// Define parameters of request.
Google.Apis.Drive.v3.FilesResource.ListRequest listRequest = service.Files.List();
string folderID = "1234567"; //Change this for your folder ID.
listRequest.Q = "'" + folderID + "' in parents";
listRequest.PageSize = 10;
listRequest.Fields = "nextPageToken, files(id, name)";
// List files.
IList<Google.Apis.Drive.v3.Data.File> files = listRequest.Execute().Files;
Console.WriteLine("Files:");
if (files != null && files.Count > 0)
{
foreach (var file in files)
{
Console.WriteLine("{0} ({1})", file.Name, file.Id);
}
}
else
{
Console.WriteLine("No files found.");
}
Console.Read();
要了解有关如何使用“Q”属性的更多信息,请执行以下操作:
这里有一些很好的链接,介绍如何创建公共和私人服务,如何从文件夹中获取文件,以及如何解决文件夹中文件超过1000个的问题:
- 服务:
- 获取文件: