Oauth 2.0 使用刷新令牌访问Google Drive API,无浏览器,401错误

Oauth 2.0 使用刷新令牌访问Google Drive API,无浏览器,401错误,oauth-2.0,google-api,google-drive-api,google-oauth,Oauth 2.0,Google Api,Google Drive Api,Google Oauth,我正在尝试使用刷新令牌访问GoogleDrive API(我自己的a/c),刷新令牌由OAuth Playerd发布,如下所示。我正在使用我的刷新令牌和访问令牌进行脱机访问,但我获得了401未经授权的权限。我的代码基于参考Belwo和google api javadocs建议,用于构建脱机请求 我不希望使用浏览器,我希望从服务器端应用程序运行此程序以上载到我自己的帐户 ref: http://stackoverflow.com/questions/10533203/fetching-access

我正在尝试使用刷新令牌访问GoogleDrive API(我自己的a/c),刷新令牌由OAuth Playerd发布,如下所示。我正在使用我的刷新令牌和访问令牌进行脱机访问,但我获得了401未经授权的权限。我的代码基于参考Belwo和google api javadocs建议,用于构建脱机请求

我不希望使用浏览器,我希望从服务器端应用程序运行此程序以上载到我自己的帐户

ref: http://stackoverflow.com/questions/10533203/fetching-access-token-from-refresh-token-using-java
代码:

错误是:

    {
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "required",
    "message": "Login Required",
    "locationType": "header",
    "location": "Authorization"
   }
  ],
  "code": 401,
  "message": "Login Required"
 }
}

我正在使用一个有效的刷新令牌和访问令牌(从游乐场控制台工作),但当从Java应用程序运行时,我需要在这里登录401。每天从服务器直接备份到驱动器时,我需要使用刷新令牌。

只有在刷新令牌未过期时,我才能使用刷新令牌进行访问吗?


不可以。您必须将刷新令牌转换为访问令牌。

您不能在应用程序中使用Playgorund中的访问或刷新令牌。这些由谷歌发行的代币只在操场上使用。您获得的令牌绑定到客户端Id和客户端机密。显然,您的客户机ID和客户机机密与谷歌游乐场应用程序使用的不同

你真的需要你的应用程序来请求这些令牌,所以这是你第一次需要一个浏览器,这样用户就可以接受你的应用程序(不是谷歌游乐场)正在谷歌上存储你的信息。这称为“用户同意”,如本页小图所示:)

然后,当您拥有应用程序的刷新令牌时。日常备份不再需要浏览器。
您可以将您的代码与应用程序的有效刷新令牌一起使用,如您的帖子所示。

是否有一个简单的示例说明如何执行此操作?API调用在此处有文档记录。我不喜欢Java库,所以无法告诉您等价物是什么
    {
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "required",
    "message": "Login Required",
    "locationType": "header",
    "location": "Authorization"
   }
  ],
  "code": 401,
  "message": "Login Required"
 }
}