我一直在尝试通过 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/