2

我真的很难理解这是如何完成的。如何使用Google Drive PHP API进行身份验证,无需复制/粘贴身份验证令牌

我按照this example能够将文件上传到我们共同的谷歌驱动器帐户。这是从Linux机器上的命令行运行的,但它要求我将URL复制/粘贴到浏览器中,复制授权令牌,然后将其粘贴回stdin,并交换auth令牌以最终获得访问令牌。

所有我需要做的是在过程自动化无需复制/粘贴URL和令牌周围,使我的剧本只是没有什么需要做的,没有来自用户的任何干预。较早的DocumentsList API允许我们使用用户名/密码进行身份验证。我知道Drive的Oauth2方法已经不再可能,但现在它会让我的生活变得更简单。有没有从我的应用程序中使用某种持久性令牌的方法?

任何人都可以指向正确的方向吗?

Regards

+0

谷歌已经开始实施持久性令牌,但目前它们仅限于一小部分用户。业务用户可以为整个公司域获取一个持久令牌。最后,一些API仍然适用于旧的电子邮件/密码组合。 –

回答

3

您可以获取访问令牌和刷新令牌对,您可以将它们存储起来以备后用。您只需要刷新令牌,因为它可以用来获取新的访问令牌。

这比用户名/密码稍微好一点,因为如果它已经被泄露,你可以随时撤销访问令牌。

+0

好吧,现在听起来更有希望了......感谢指针Ali Afshar。所以我已经经历了这个过程,并检索了我的访问权限和刷新令牌。现在,我使用哪种格式/方法来使用google-php-api-client设置它们?我已经尝试在'$ _SESSION ['token']'中设置刷新标记,然后'$ client-> setAccessToken($ _ SESSION ['token']);'但是我碰到一个错误'无法json解码标记'。有没有我能工作的例子?谢谢。 – user1027562

+0

我看着谷歌API客户端的源和setAccessToken方法接受的格式的JSON字符串: '{“的access_token”:“令牌”,“refresh_token”:“令牌”,“token_type”:“承载“,”expires_in“:3600,”id_token“:”token“,”created“:1320790426}'我把我的JSON访问标记作为字符串保存到'$ _SESSION ['token']'中,然后传递给'$ client - > setAccessToken($ _ SESSION ['token']);'现在我可以访问了!大绿色勾号:) – user1027562

+0

太好了。请回复给我们任何进一步的问题。 –