我一直在尝试通过 REST 查询 Google GMAIL API。

我已经做了以下事情:
1.在console.developer.google.com创建项目
2. 为项目创建 API Key
3.在控制台启用Gmail API
4. 现在我正在尝试执行以下 cURL 请求:

curl -H 'Content-Type: application/json' -H 'Accept: application/json'  https://www.googleapis.com/gmail/v1/users/<email_id>/messages?key=<my_API_KEY>

但我得到以下回应
{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "required",
    "message": "Login Required",
    "locationType": "header",
    "location": "Authorization"
   }
  ],
  "code": 401,
  "message": "Login Required"
 }
}

我该怎么办?

提前致谢

最佳答案

经过大量的挠头后,我遇到了这个:https://developers.google.com/api-client-library/php/auth/api-keys

此链接指出 API key 仅允许您访问 公共(public)数据 我试图提出的请求是 私有(private)数据

因此,我必须使用 OAuth2.0 对用户进行身份验证,然后在 url 中使用访问 token 。

一旦用户通过 OAuth2.0 授予我的应用访问权限,我必须传递 access_token

curl -H 'Content-Type: application/json' -H 'Accept: application/json'  https://www.googleapis.com/gmail/v1/users/<email_id>/messages?access_token=<ACCESS_TOKEN>

我使用 https://github.com/Lusitanian/PHPoAuthLib 库来处理 OAuth2.0 并获取 token ,然后使用 PHP 发出 CURL 请求。

希望能帮助到你 :)

关于rest - 如何在向 Google Contacts REST API 发出 HTTP GET 请求时使用 API key ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35190925/

10-14 12:45
查看更多