AJAX GMAIL API调用授权错误

时间:2016-08-03 15:14:30

标签: javascript ajax gmail-api

我是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错误或我是否错误地使用了授权标头?我该如何解决这个问题。

提前致谢。

1 个答案:

答案 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);
  }
}