PHP谷歌表单快速入门

PHP谷歌表单快速入门,php,google-sheets,Php,Google Sheets,我想将数据导出到google sheets,我从cli启动脚本时下载了quickstart.php脚本,它要求“输入验证码:”并给我一个url以使用浏览器打开,我允许权限并重定向到一个脚本,我的服务器显示它接收到的阵列: [access_token] => .... [expires_in] => 3599 [refresh_token] => ... [scope] => .... [token_type] => Bearer [created] => 1

我想将数据导出到google sheets,我从cli启动脚本时下载了quickstart.php脚本,它要求“输入验证码:”并给我一个url以使用浏览器打开,我允许权限并重定向到一个脚本,我的服务器显示它接收到的阵列:

[access_token] => ....

[expires_in] => 3599
[refresh_token] => ...
[scope] => ....
[token_type] => Bearer
[created] => 1589307422
我将access_令牌粘贴到cli询问代码,但它返回:

PHP Fatal error:  Uncaught InvalidArgumentException: Invalid token format in /var/www/html/vendor/google/apiclient/src/Google/Client.php:449
Stack trace:
#0 /var/www/html/quickstart.php(45): Google_Client->setAccessToken(Array)
#1 /var/www/html/quickstart.php(63): getClient()
#2 {main}
  thrown in /var/www/html//vendor/google/apiclient/src/Google/Client.php on line 449

出什么事了?

我也做过类似的事情,我做过这样的事情:

更换(临时)

与:

因为我在某处有那个认证码

希望您也能这样做来开始,当然不是最好的方式,但我就是这么做的。

解决方案 它请求的代码不是访问令牌。此授权流将实际检索访问令牌

实际上,它与遵循教程一样简单:

一旦您启动并运行“快速启动”,它将提示您授权访问:

在web浏览器中浏览到提供的URL

如果您尚未登录您的Google帐户,系统将提示您登录。如果您登录了多个Google帐户,系统将要求您选择一个用于授权的帐户

单击“接受”按钮

复制给定的代码,将其粘贴到命令行提示符中,然后按Enter键

参考文献

如何将access\u令牌数组粘贴到客户端?我制作了一个脚本,打印从Google收到的数组。我复制access\u令牌数组元素,并粘贴到我启动的quickstart.php的cli中。您将其作为
标准输入传递了吗?我认为必须将其转换为数组才能正确解析。我不知道如何将其作为数组传递,因为quickstart.php需要从cli启动,它会返回一个url(从要求自动化以使用google sheets的浏览器中打开)并要求输入验证码:我想这是在要求访问令牌否,它不提供任何代码,要求授权并重定向到我拥有的脚本:require DIR/供应商/autoload.php'$client=新的Google_客户端()$代码=$\u获取[“代码”]$客户端->setAuthConfig('credentials.json')$客户端->setAccessType(“脱机”)$客户端->设置IncludeGrantedScopes(真)$令牌=$client->fetchAccessTokenWithAuthCode($\u GET['code']);回声“;印刷币($token);回声“;那么,您已经有了授权码和访问令牌。因此,您成功地完成了身份验证流程。您好,您是否仍在使用此解决方案,或者您是否偶然发现了其他问题?它目前正在live site上运行,不再需要查看它
$authCode = trim(fgets(STDIN));
$authCode = '4/yQFYBDGKFDSD54546Qhg6BZlT_gCEFZ7ixATB7657oc';