如何在向Google Contacts REST API发出HTTP GET请求时使用API​​密钥

时间:2016-02-04 01:27:46

标签: rest gmail-api

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

我已经做了以下事情:
 1.在console.developer.google.com中创建项目  2.为项目创建API密钥  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"
 }
}

我该怎么办?

提前致谢

1 个答案:

答案 0 :(得分:5)

经过大量的讨论,我发现了这个:https://developers.google.com/api-client-library/php/auth/api-keys

此链接指出API密钥只允许您访问公开数据我尝试提出的请求是私有数据

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

用户通过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并获取令牌,然后使用PHP发出CURL请求。

希望有所帮助:)