Firebase FCM使用正确的服务器密钥返回未经授权错误

3
我正在尝试使用Firebase Cloud Messaging从我的服务器发送推送通知,但是一直收到以下错误消息:
``` 客户端错误: POST https://fcm.googleapis.com/v1/projects/my-project/messages:send 导致了 401 Unauthorized 响应... 请求的身份验证凭据无效。期望的 OAuth 2 访问 ```
我已经在网上搜索过了,并且有很多地方提到"使用服务器密钥而不是API密钥"。我正在这样做,但仍然收到错误消息。没有任何在线信息能够帮助我解决问题。
以下是我的请求内容:
POST https://fcm.googleapis.com/v1/projects/my-project/messages:send

Headers:
    Authorization: Bearer <MY SERVER KEY>
    Content-Type: application/x-www-form-urlencoded (I have also tried application/json)

Body:
    {
        "message": {
            "topic": "",
            "notifications": {
                "title": "Some title",
                "body": "Some notification body"
            }
        }
    }

通过Firebase控制台直接推送通知是可行的,但我无法使其在服务器端起作用。


听起来你传递的服务器密钥无效。 - Doug Stevenson
@DougStevenson - 我从 Firebase 仪表板复制了服务器密钥。 - UndercoverCoder
1个回答

5
看起来您正在使用 v1 HTTP API,但是您尝试使用 legacy API 的说明进行授权。它们不兼容。如文档所述:

重要提示:控制台中找到的服务器密钥无法授权通过HTTP v1 API发送的请求——它仅用于旧版HTTP和XMPP请求。

如果您想使用v1 API,则必须遵循v1 API文档中的说明。如果您不想使用v1 API,则必须改用旧版API。

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