FCM缺少授权问题

3
这是我的代码:
function sendToken(token) {
  $.ajax({
    url: 'https://iid.googleapis.com/iid/v1/' + token + '/rel/topics/IoT',
    method: 'POST',
    headers: {
      Authorization: 'key=' + server_key
    },
    contentType: 'application/json',
    cache: false,
    success: function(response) {
      console.log(response);
    },
    error: function(response) {
      console.log(response);
    }
  });
}

响应是{"error":"MissingAuthorization"}

我卡住了,不明白为什么这个不起作用。


我猜 server_key 是一个变量,所以你不应该在它周围加引号。 - Rory McCrossan
相同回复 {"error":"缺少授权"} - ibrahimo01
1
Authorization 头应该采用这种形式: 'Authorization': 'Bearer ' + accessToken,所以在你的代码中使用这个 Authorization: 'Bearer ' + server_key。https://firebase.google.com/docs/cloud-messaging/auth-server#authorize_http_v1_send_requests - Frank van Puffelen
1个回答

0

我也遇到了同样的问题,所以我使用了 fetch,它能正常工作。

fetch('https://iid.googleapis.com/iid/v1/'+token+'/rel/topics/'+topic, {
method: 'POST',
headers: new Headers({
  'Authorization': 'key='+server_key
})
}).then(response => {
    if (response.status < 200 || response.status >= 400) {
      throw 'Error subscribing to topic: '+response.status + ' - ' + response.text();
    }
    console.log('Subscribed to "'+topic+'"');
  }).catch(error => {
    console.error(error);
  })

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接