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

nik*_*ree 4 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>
Run Code Online (Sandbox Code Playgroud)

但我得到以下回应

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "required",
    "message": "Login Required",
    "locationType": "header",
    "location": "Authorization"
   }
  ],
  "code": 401,
  "message": "Login Required"
 }
}
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

提前致谢

nik*_*ree 5

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

此链接表明API密钥仅允许您访问公共数据我试图发出的请求是私有数据

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

用户通过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>
Run Code Online (Sandbox Code Playgroud)

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

希望能帮助到你 :)