2013-01-03 119 views
2

使用OAuth2可以获得永久访问令牌吗?我想在安装过程中使用Box来下载文件。安装会抓取特定文件夹中的所有文件。我有一个箱子帐户设置为文件夹的所有者,在API v1中,我可以获得永久auth_token以在我的可执行文件中重复使用。但看起来,使用OAuth2,我只能获得1小时的访问令牌和刷新令牌。但是,由于最终用户实际上并未访问Box,并且该应用程序是桌面应用程序,因此如果令牌已过期,则无法进行身份验证。我知道还有其他的解决方案,但V1 api让我这样做,并且我不希望在V1被弃用时不会失去这个功能。OAuth2中的永久访问令牌

回答

1

框的OAuth2实现不会生成永久令牌。但是,就像在V1 API中一样,您可以为非Box用户可访问的文件创建链接。您必须在UI中将共享访问权限设置为“打开”,或者通过API将json设置为共享访问权限。

有一个section in the docs解释如何做到这一点。你基本上是通过一个PUT到/文件/端点的小JSON体是这样的:

{"shared_link": {"access": "open"}} 

你会得到一个JSON文件体,具有shared_link部分是完整的。事情是这样的:

"shared_link": { 
    "url": "https://www.box.com/s/rh935iit6ewrmw0unyul", 
    "download_url": "https://www.box.com/shared/static/rh935iit6ewrmw0unyul.jpeg", 
    "vanity_url": null, 
    "is_password_enabled": false, 
    "unshared_at": null, 
    "download_count": 0, 
    "preview_count": 0, 
    "access": "open", 
    "permissions": { 
     "can_download": true, 
     "can_preview": true 
    } 
+0

我有经验的所有其他云提供商都提供静态刷新令牌(例如Google Drive,SkyDrive)。可能不符合规格,但可以更容易地正确维护它。 假设我想在每次使用之后保存更新的refreshtoken - 没关系,但是如果出现某种故障或应用程序因为某种原因被终止(例如,在移动设备上)之前会被终止。然后,我将不得不请求用户重新执行身份验证流程。 – AndersC

1

您可以使用刷新令牌来获取持续一个小时一个新的访问令牌,和一个新的刷新令牌。

所以,你的桌面应用程序可能需要连接到互联网安全读/写

  • 访问令牌
  • 访问令牌到期日
  • 刷新令牌
  • 刷新令牌到期日**

**每个刷新标记只对14天有效AYS。希望Box删除到期功能。

或者,根据原始建议将您的文件放在可公开访问的位置。