我一直在尝试通过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"
}
}
我该怎么办?
提前致谢
经过大量的抓挠之后,我遇到了这个问题: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>
我使用https://github.com/Lusitanian/PHPoAuthLib库处理OAuth2.0并获取令牌,然后使用PHP发出CURL请求。
希望能帮助到你 :)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句