小编Ern*_*son的帖子

Google Drive API - 限制 API 访问单个文件夹?

我的应用程序使用 Google Drive API 读取用户上传到其 Drive 存储区域的文件,并将文件和文件夹写入同一目录。用户使用自己的帐户/凭据登录。

我目前的理解是,在这种情况下我唯一可用的范围(访问级别)是“完全驱动器访问”。

这是正确的说法吗?

Dropbox 支持一个“Apps”文件夹,我可以在其中使用他们的 API 进行读/写,同时被限制在我自己的区域内。我很惊讶 Google 没有提供类似的东西,因为我的用户可能不想授予对整个 Drive 存储的读/写访问权限,而我需要访问的只是一个目录(以及其中的所有子目录,无论我是创建或用户创建)。

为了提供更多信息,我的应用程序是一个抽认卡应用程序。我希望用户至少能够上传包含应用程序读取数据的电子表格。但是如果我不需要完全访问他们的所有数据,用户就会喜欢它。

google-drive-api

8
推荐指数
1
解决办法
2521
查看次数

具有完全驱动器访问权限的Android应用+ Drive API ...程序是什么?

我正在寻找与使用Android应用访问Google云端硬盘相关的一些指导.

1)我需要能够读取我的应用程序之外的用户上传的文件.这是否意味着我需要全驱动访问?(如果应用程序可以创建一个文件夹,然后查看该文件夹中存在的用户上传的所有文件,那就太棒了,但我不认为这样做.)

2)如果我需要全驱动访问权限,似乎Googles"Drive API for Android"不支持此功能,我需要使用REST API.我认为这是真的.

3)我需要来自Google的Auth 2.0客户端ID.如果我使用其余的API,这是否意味着我需要使用"Web应用程序"ID?我想我需要这个,因为我想要一个"授权代码".我无法使用"Android"类型ID.

4)我目前正在使用Android的"Google登录"来处理登录并提供身份验证代码.然后我可以将它转换为令牌+刷新令牌,并保存这些,这样我可以在一小时后以某种方式获得新的令牌.是否需要手动处理刷新令牌?

它变得丑陋,但我认为,因为我需要(?)全驱动访问,所以这是程序.

谢谢你的指导.

编辑:该问题已被确定为重复.提供的链接为问题#2提供了答案,但没有解决其他问题.

我同意这个问题很混乱......

android google-drive-api

2
推荐指数
1
解决办法
1174
查看次数

从 .NET Core Web API 返回错误消息

我有一个 .NET Core Web API 控制器来处理 POST 请求,该请求采用 JSON ApiUser 对象并返回 ApiUser 对象

[HttpPost]
public ApiUser Post([FromBody] ApiUser model) {
    return new ApiUser();
}
Run Code Online (Sandbox Code Playgroud)

假设我想向客户端返回一条错误消息:“电子邮件已存在。” 我不知道如何最好地以简单的方式做到这一点。

我可以向 ApiUser (以及我通过 API 返回的所有其他类)添加一个“ErrorMsg”属性,但不确定这是否是正确的方法。

“Pre-Core”,我会抛出一个 HttpResponseException,这在 Core 中不受支持。这很好,因为它会创建一个带有“Message”的简单 JSON,然后我可以抓取它。(Goofy:我会使用状态 202 Accepted 作为向我的客户表明我们有“已知错误”的标志。)

throw new HttpResponseException(request.CreateErrorResponse(HttpStatusCode.Accepted, msg));
Run Code Online (Sandbox Code Playgroud)

(我想我更愿意在控制器内部处理这个问题,而不是“过滤器”或“中间件”。后两者的一个问题是,如果我添加剃刀页面,我认为我需要知道是否出现错误来自 API 调用或 UI Web 调用。)

更新#1

似乎我可以执行以下操作(返回ActionResult< T>)来模拟我之前使用 HttpResponseException 所做的操作。仍然不确定执行类似的操作或通过将 ErrorMsg 添加到 ApiUser 返回状态 200 是否会更好。

[HttpPost]
public async Task<ActionResult<ApiUser>> Post([FromBody] ApiUser model) {
    ...
    if (emailExists) return StatusCode(400, "Email already exists.");
    else …
Run Code Online (Sandbox Code Playgroud)

asp.net-core-webapi

1
推荐指数
1
解决办法
6998
查看次数