AJAX GMAIL API 调用授权错误
AJAX GMAIL API Call Authorization error
我是 GMail 的新手 API,我正在尝试拨打 AJAX 电话来检索邮件。
我的代码是:
$.ajax({
beforeSend: function (request)
{
request.setRequestHeader("authorization", "Bearer xxxxxxxxxxxxxxxxx.apps.googleusercontent.com");
},
url: 'https://www.googleapis.com/gmail/v1/users/me/messages?key=xxxxxxxxxxxxxxxxxx',
dataType: 'json',
cache: false,
success: function(data) {
// this.setState({Emails: data});
console.log("Mail thread"+data);
}.bind(this),
error: function(xhr, status, err) {
console.error(this.props.url, status, err.toString());
}.bind(this)
});
},
响应是 401 错误。在检查请求时,我发现以下查询参数附加到正在发送的请求 URL:
&_=1470236511985
所以请求URL是这样的。
https://www.googleapis.com/gmail/v1/users/me/messages?key=xxxxxxxxxxxxxxxxxx&_=1470236511985
是追加的查询参数导致了 401 错误还是我使用授权不正确 header?我该如何解决这个问题。
提前致谢。
出于测试目的,您可以转到 OAuth 2.0 Playground 并获取 Gmail API 范围的访问令牌。只需在名为 access_token
:
的查询参数中使用此访问令牌
var accessToken = 'ya29...';
$.ajax({
url: 'https://www.googleapis.com/gmail/v1/users/me/messages?access_token=' + accessToken,
dataType: 'json',
success: function(data) {
console.log(data.messages);
}
}
我是 GMail 的新手 API,我正在尝试拨打 AJAX 电话来检索邮件。
我的代码是:
$.ajax({
beforeSend: function (request)
{
request.setRequestHeader("authorization", "Bearer xxxxxxxxxxxxxxxxx.apps.googleusercontent.com");
},
url: 'https://www.googleapis.com/gmail/v1/users/me/messages?key=xxxxxxxxxxxxxxxxxx',
dataType: 'json',
cache: false,
success: function(data) {
// this.setState({Emails: data});
console.log("Mail thread"+data);
}.bind(this),
error: function(xhr, status, err) {
console.error(this.props.url, status, err.toString());
}.bind(this)
});
},
响应是 401 错误。在检查请求时,我发现以下查询参数附加到正在发送的请求 URL:
&_=1470236511985
所以请求URL是这样的。
https://www.googleapis.com/gmail/v1/users/me/messages?key=xxxxxxxxxxxxxxxxxx&_=1470236511985
是追加的查询参数导致了 401 错误还是我使用授权不正确 header?我该如何解决这个问题。
提前致谢。
出于测试目的,您可以转到 OAuth 2.0 Playground 并获取 Gmail API 范围的访问令牌。只需在名为 access_token
:
var accessToken = 'ya29...';
$.ajax({
url: 'https://www.googleapis.com/gmail/v1/users/me/messages?access_token=' + accessToken,
dataType: 'json',
success: function(data) {
console.log(data.messages);
}
}