问题:我应该如何在Google Picker和Google云端硬盘中使用刷新令牌?
我对谷歌脚本的平台的应用程序,这意味着允许上传到谷歌驱动器,而无需使用任何帐户。上传功能运行良好,但我遇到很长/很长的上传问题。我试图解决这个问题,因为我需要测试令牌的到期时间。
当用户尝试上传大文件(20/30 GB)时,Auth令牌服务器过期Error Screenshot 1,然后出现此错误Error screenshot 2。
所以我需要的是使用将超过5小时过期的令牌。我确实尝试使用刷新令牌,但最终我感到非常困惑。我确实在OAuth 2.0 Playground中创建了刷新令牌。
事情我已经尝试:
- 传递刷新令牌在setOAuthToken才能。 (被功能拒绝)
- 使用刷新令牌使用setOAuthToken,但失败。
问题
我可以永久授权,以选取器应用程序的访问? (因为它始终是用户访问服务器端代码的驱动器)?
我应该使用刷新令牌来获取Auth令牌吗?
原始代码:
var a = (new google.picker.PickerBuilder)
.addView(t)
.enableFeature(google.picker.Feature.NAV_HIDDEN)
.setOAuthToken("<?= ScriptApp.getOAuthToken(); ?>")
.enableFeature(google.picker.Feature.MULTISELECT_ENABLED)
.hideTitleBar()
.setSize(DIALOG_DIMENSIONS.width - 2, DIALOG_DIMENSIONS.height - 2)
.setCallback(pickerCallback).setOrigin(config.FORM_EMBED_DOMAIN)
.build()
任何帮助将非常感激。
非常感谢,我会尝试这两种方法。 –
您好@ponoyyid,再次感谢您的帮助。我确实试图用你的建议来解决我的问题,但我没有运气。你能解释什么是“immediate = true”吗?我还没有找到一种方法来捅入拾取器对象的新访问令牌。我可以更新令牌,但是如果已经创建/显示了Picker对象,我该如何更新呢? –
immediate = true会导致无需任何用户界面即可进行刷新。没有发布的方法来更新创建的选取器对象的标记。这是一个设计缺陷。由于在JavaScript中,所有属性都是可访问的,即使它们是内部的,我的建议是在代码中进行挖掘,直到找到内部属性。就像我说的,真好。 – pinoyyid