如何使用我的凭据或特殊生成的ID和密码在google api中进行身份验证?

时间:2017-11-07 19:56:41

标签: php google-api google-oauth google-oauth2 google-calendar-api

我想从我的个人日历中获取所有活动。我已经尝试了几个小时所有类型的auth: 我使用回调成功验证,我应该登录到我的谷歌帐户,然后谷歌重定向回我的网站。 - 但这不是我需要的。 此外,我尝试使用默认凭据,令我惊讶的是,我无法访问我的日历,这是什么样的逻辑。

基本上,它在Spotify中如何为我工作:在Spotify中可以在我的帐户中生成客户端ID和密码。之后,我从我的代码中发送带有base64(client:password)的HTTP,并从我的代码接收令牌,我用它来查询某些实体。

但是在google API中我找不到这样的解决方案。也许有人可以建议如何进行身份验证?

1 个答案:

答案 0 :(得分:3)

您可以使用Google client library for PHP。它标记为echo PASSWORD | kinit && aklog,但我发现它很容易使用,它对于简单的日历用例来说效果很好。

我放了working example out on GitHub.

如果您希望直接针对OAuth 2.0 API进行编码,我建议您查看Google Developers OAuth 2.0 Playground

  • 在步骤1中选择beta
  • 在第3步,点击Calendar API v3,然后选择List possible operations。将List Events替换为您的gmail.com电子邮件地址。

这使您可以观察身份验证流程,从用户进行身份验证并向Google授予权限后重定向到应用程序开始:

{calendarId}
GET /oauthplayground/?code=4/xxxxxxxxxxxZL-nxhM_kxxxxxxxxxQ HTTP/1.1
POST /oauth2/v4/token HTTP/1.1
Host: www.googleapis.com
Content-length: 233
content-type: application/x-www-form-urlencoded
user-agent: google-oauth-playground
code=4%2FxxxxxxxxxxxxxxZL-xxxx_kxxxxxxxxxxQ&redirect_uri=https%3A%2F%2Fdevelopers.google.com%2Foauthplayground&client_id=4xxxxxxxxxx.apps.googleusercontent.com&client_secret=************&scope=&grant_type=authorization_code