Google drive api 自动执行oauth身份验证,而不使用cron实用程序中的浏览器

Google drive api 自动执行oauth身份验证,而不使用cron实用程序中的浏览器,google-drive-api,Google Drive Api,我正试图在谷歌硬盘上上传一些文档,我想运行一个cron脚本,该脚本每天午夜执行,由此生成的文件应该上传到谷歌硬盘上 我尝试了独立脚本,它将文档上传到Google drive上,但为此,我每次都必须允许通过浏览器访问 但是,我的目的是运行cron并上载文件,在cron执行时,将没有浏览器访问权限 是否有任何方法可以在无需手动干预的情况下执行身份验证过程 在这种情况下,任何帮助都将不胜感激 谢谢,您可以使用Google Drive授权您的应用程序(脚本) 在这里,您提到您正在编写一个脚本,将文档上载

我正试图在谷歌硬盘上上传一些文档,我想运行一个cron脚本,该脚本每天午夜执行,由此生成的文件应该上传到谷歌硬盘上

我尝试了独立脚本,它将文档上传到Google drive上,但为此,我每次都必须允许通过浏览器访问

但是,我的目的是运行cron并上载文件,在cron执行时,将没有浏览器访问权限

是否有任何方法可以在无需手动干预的情况下执行身份验证过程

在这种情况下,任何帮助都将不胜感激


谢谢,

您可以使用Google Drive授权您的应用程序(脚本)

在这里,您提到您正在编写一个脚本,将文档上载到您的Google Drive。 我建议你先在谷歌云控制台注册一个应用,获取客户端ID和客户端密码, 并为您注册的应用程序打开驱动器API

然后使用此客户端ID和密码在脚本中运行oauth流以获取访问令牌和刷新令牌,访问令牌的寿命约为3600秒,如果已过期,还可以使用刷新令牌获取新的访问令牌

只有在您第一次请求访问令牌时,才需要用户的交互(同意)

这样,您的脚本就可以以“真正的脚本方式”工作

以下是一些参考资料:

我假设您上传到的只有一个用户驱动器帐户。您是否考虑过为此使用服务帐户


如果您上传的不是单个用户帐户,您可以将刷新令牌保存在某个地方,并使用该令牌每晚获取一个新的authtoken

嗨,我知道问题出在哪里了

我正在从OAuthPlayerd生成刷新令牌,并试图将其集成到php脚本中……这是无效的


然后,当用户允许访问时,我打印了第一次返回的刷新令牌,并将其用于下一代访问令牌,它的工作原理类似于charm。谢谢大家的帮助

您好,谢谢您的及时回复,我已经在云控制台下注册了该应用程序。我有客户端id和密钥。我不确定如何使用刷新令牌。下面是我拥有的代码$service=newgoogle\u DriveService($client);如果($client->isAccessTokenExpired()){$client->authenticate();$NewAccessToken=json_decode($client->getAccessToken());$client->refreshttoken($NewAccessToken->refresh_token);}//插入文件我也尝试过像这样使用set accesstoken方法,$client->setAccessToken('{“access_token”:“ya29.1.AADtN UffmvD-9MPhjIUKtXyhNOP-IwgvLh48nOSFRIKvC-XDXXO-Eflb2MY0A-I3RNtQ”,“令牌类型”:“承载”、“到期时间”:3600,“刷新令牌”:“1/d8x8099NpHVepjut--pYcrGJ8Ebnz13zw”;但是它给我的错误是无效客户端和错误请求关于细节,希望并能帮助你。我有刷新令牌,当我试图从中生成身份验证令牌时,我得到的错误是刷新oauth2令牌错误:未授权客户端。$auth_code=$client->refreshToken(“1/3EZsybCh1jolk4YMHyQ6LgpiE_zlb4u9R6f0KqjGXMA”);下面是我使用的代码,$accessToken=$client->authenticate($auth_code);请告诉我这是否错误,或者我如何才能最好地使用刷新令牌。提前感谢您只进行一次自动验证,这是您的用户说是的时候。您想为访问令牌取消刷新令牌的更改。试试这个。$client->refreshToken(“1/3EZsybCh1jolk4YMHyQ6LgpiE_zlb4u9R6f0KqjGXMA“;$token=$client->getAccessToken();下面给我的错误是我的代码$client=new Google_client();//从控制台获取您的凭证$client->setClientId('440456931204-q2omnu8fh75n4s4111h503nav60h5gpf.apps.googleusercontent.com');$client->->setClientSecret('ebiztfmnhabtymz8mvn7vqdk'))$client->setRedirectUri('urn:ietf:wg:oauth:2.0:oob');$client->setScopes(array(');$service=new Google_DriveService($client);$auth_code=$client->refreshtToken(“1/3EZsybCh1jolk4YMHyQ6LgpiE_zlb4u9r6f0kjgxma”);$token=$client->->getAccessToken();//插入一个文件您是否检查了返回的令牌?您好,我想我是从OAuthPlayGray生成refresh令牌,并试图将其集成到php脚本中……这是无效的……然后我对第一次返回的刷新令牌进行了pritned,现在我正在使用它,它就像一个符咒一样工作……谢谢您可以使用Oauth Playg轮,但您需要输入自己的客户ID。请参阅