Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google api 使用离线访问oAuth令牌运行Google Picker_Google Api_Google Oauth_Google Picker - Fatal编程技术网

Google api 使用离线访问oAuth令牌运行Google Picker

Google api 使用离线访问oAuth令牌运行Google Picker,google-api,google-oauth,google-picker,Google Api,Google Oauth,Google Picker,我在做什么: 我正在我的页面上集成。这将允许用户从谷歌硬盘中选择要在web应用程序中使用的文件。在应用程序中,组中的人共享一个通用的google驱动器(即,他们都可以从帐户中选择文件)example@email.com)这是由集团管理员通过他的电子邮件地址创建的。当管理员注册帐户时,我们进行OAuth,并在google上通过我们的应用程序(启用离线访问)获得access\u token。我计划在其他组用户尝试使用picker选择文件时,在他们的帐户上使用管理员的访问\u令牌和刷新令牌 我所做的:

我在做什么:

我正在我的页面上集成。这将允许用户从谷歌硬盘中选择要在web应用程序中使用的文件。在应用程序中,组中的人共享一个通用的google驱动器(即,他们都可以从帐户中选择文件)example@email.com)这是由集团管理员通过他的电子邮件地址创建的。当管理员注册帐户时,我们进行OAuth,并在google上通过我们的应用程序(启用离线访问)获得
access\u token
。我计划在其他组用户尝试使用picker选择文件时,在他们的帐户上使用管理员的
访问\u令牌
刷新令牌

我所做的:

我已经使用中提供的基本代码成功地将Google Picker集成到我的应用程序中。然后,为了实现我想要的,我从示例代码中删除了以下代码:

gapi.load('auth', {'callback': onAuthApiLoad});

而不是
.setOAuthToken(oauthToken)
我直接将刷新后的access\u令牌作为字符串传递(我通过ajax调用从服务器获取)

.setOAuthToken(“

问题:

尝试添加。侦听器提供了一种自动响应当前用户登录会话中更改的方法。例如,在启动方法初始化Google登录auth2对象后,您可以设置侦听器以响应auth2.isSignedIn状态更改或auth2.currentUser中的更改等事件


每次使用令牌之前可能会出现这种情况,但这可能会为我们每次加载选择器时的罕见用例增加大量额外开销,并且在重新身份验证问题后使用令牌调用API端点时,没有关于令牌无效的密钥。您可以通过向端点发出web服务请求来验证令牌指向Google授权服务器,并对该web服务请求的结果执行字符串匹配。

你找到了解决方案吗?@ot954我找到了,但那是3年前的事了。我将深入我的存储库,看看是否还有该代码。我唯一能找到的方法是使用应用程序脚本。但我仍然不太确定如何找到它从google应用程序脚本提供html。在我的情况下,我已将用户的驱动器与我的应用程序集成。一旦集成完成,google picker将永远不会显示此登录。@ot954您有何收获?遇到同样的问题吗
function onAuthApiLoad() {
  window.gapi.auth.authorize(
    {
      'client_id': clientId,
      'scope': scope,
      'immediate': false
    },
    handleAuthResult);
}
function handleAuthResult(authResult) {
  if (authResult && !authResult.error) {
    oauthToken = authResult.access_token;
    createPicker();
  }
}
.setOAuthToken("<access_token>")