当我调用此 Google Cloud 函数(使用 node.js)时,我获得了 OAuth 令牌,但似乎我没有获得用于消息传递的正确 OAuth 令牌。
const MESSAGING_SCOPE = 'https://www.googleapis.com/auth/firebase.messaging';
const SCOPES = [MESSAGING_SCOPE];
function getOAuthAccessToken() {
return new Promise(function (resolve, reject) {
let jwtClient = new google.auth.JWT(
keyData.client_email,
null,
keyData.private_key,
SCOPES,
null
);
jwtClient.authorize(function (err, tokens) {
if (err) {
reject(err);
return;
}
resolve(tokens.access_token);
});
});
}
错误负载:
{
"error" : {
"code" : 400,
"message" : "The registration token is not a valid FCM registration token",
"status" : "INVALID_ARGUMENT",
"details" : [
{
"@type" : "type.googleapis.com\/google.firebase.fcm.v1.FcmError",
"errorCode" : "INVALID_ARGUMENT"
}
]
}
}
我可以在 Google Playground 中获取 OAuth 访问令牌,它可以工作,但该令牌只是临时令牌。
您似乎正在尝试向 OAuth 令牌发送消息,但这不起作用。虽然 OAuth 令牌可用于授权通过 FCM 发送消息,但它们本身不能成为发送消息的目标。
如果您想向其发送消息,则需要一个适当的 FCM 令牌,您可以通过调用 iOS、Android 或 web 的相应方法来获取该令牌