我是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
因此请求网址如下所示。
https://www.googleapis.com/gmail/v1/users/me/messages?key=xxxxxxxxxxxxxxxxxx&_=1470236511985
附加的查询参数是否导致401错误或我是否错误地使用了授权标头?我该如何解决这个问题。
提前致谢。
答案 0 :(得分:1)
出于测试目的,您可以转到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);
}
}