34

我们试图google.picker让我们的用户将文件上传到我们的驱动器帐户(即,用户不需要拥有 Google 帐户即可上传)。

我们正在尝试将常规 Google 帐户用作应用程序拥有的帐户,并AUTH_TOKEN使用 OAuth2 并将其设置为使用 .setOAuthToken(AUTH_TOKEN). 我们遵循了文档中描述的所有内容。

但是,在上传时,我们遇到了Server Rejected错误。调用https://docs.google.com/upload/resumableupload?authuser=undefined返回:

{"errorMessage":{"reason":"REQUEST_REJECTED","additionalInfo":{"uploader_service.GoogleRupioAdditionalInfo":{"completionInfo":{"status":"REJECTED"},"requestRejectedInfo":{"reasonDescription":" agent_rejected"}}},"upload_id":"AEnB2Ur64Gb0JDCk_8mg5EhpdcaqL82wBQHumHjcGvDqYibtksmUzhfhBolsmBFzRuvQPRyi43SYfactJZvIWYrQ6xAqzu3L9g"}}

我们知道我们不能使用服务帐户,因为选择器不支持它。

我们是否错过了获得的东西AUTH_TOKEN?我们需要在控制台中做些什么吗?

4

5 回答 5

1

再给我们一些代码,或者检查对 gapi.auth.authorize() 的调用

  1. 检查您是否使用正确的范围来获取 OAuth 令牌。
  2. 仔细检查范围声明:
  3. 检查调用gapi.auth.authorize()

    window.gapi.auth.authorize(
    {
         'client_id': clientId,
         'scope': scope,
         'immediate': false
    },
    handleAuthResult);
    

    来自:https ://developers.google.com/picker/docs/#hiworld

如果没有实际的代码示例,很难准确地说出发生了什么。很可能是身份验证令牌集合。但是,它也可能很简单,例如不定义谷歌用户(clientID),这反过来会影响gapi.auth.authorize()呼叫。

于 2014-09-20T02:34:51.977 回答
0

范围似乎是问题。OAuth 令牌必须仅使用正确的范围获得:http: //tinyurl.com/ldotq4y

于 2015-03-12T11:44:53.520 回答
0

也许这个线程可以帮助你:https ://groups.google.com/forum/#!topic /Google-Picker-API/PPd0GEESO78 这是关于设置oauth上下文

或这个: https ://productforums.google.com/forum/# !msg/drive/GDl4uBkkbxM/jRejcxI-EV8J 这是关于您尝试使用自动转换上传的文件类型..

于 2014-04-30T08:32:45.010 回答
0

在 Drive 上使用带有函数 doPost 的 Google Apps 脚本将数据发送到服务器。然后使用 Drive API 写入文件。在发布时,如果进行跨域调用,您必须将权限设置为“任何人都可以访问,甚至匿名”。使脚本以您在 Google 中的用户名运行(用于测试),但您很可能希望将该功能移至 Gmail 中的某个应用程序用户帐户。

如果您需要涉及某种级别的身份验证,即使脚本是公开的,您也可以针对 CloudSQL 托管数据库和/或使用 Jdbc 库进行身份验证以连接到外部资源。

于 2015-01-11T06:24:42.410 回答
0

轻松替换scope: 'https://www.googleapis.com/auth/drive.readonly'scope: 'https://www.googleapis.com/auth/drive'. 这样您就可以进行更改,包括将某些内容上传到您的 Google Drive 帐户。

于 2016-10-30T14:34:20.837 回答