我一直在尝试通过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"
}
}
我该怎么办?
提前致谢
答案 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请求。
希望有所帮助:)