将 FCM API 迁移到 HTTP v1 后出现 SENDER_ID_MISMATCH 403 错误

问题描述 投票:0回答:1

迁移到 FCM V1 后,我在发送推送通知时遇到问题

我做了迁移文档所说的一切 https://firebase.google.com/docs/cloud-messaging/migrate-v1

  1. 创建了一个全新的项目
  2. 创建了用于 jwt 令牌创建的 json 文件
  3. 更新了标题

这是我的代币创建代码(C#)

    async Task<string> GetAuthToken()
    {
        var firebaseCredentialsPath = Environment.GetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS");

        if (firebaseCredentialsPath != null)
        {
            GoogleCredential credential;
            using (var stream = new System.IO.FileStream(firebaseCredentialsPath,
                       System.IO.FileMode.Open, System.IO.FileAccess.Read))
            {
                credential = GoogleCredential.FromStream(stream).CreateScoped("https://www.googleapis.com/auth/firebase.messaging");
            }
            
            return await ((ITokenAccess)credential).GetAccessTokenForRequestAsync();
        }

        return string.Empty;
    }

这是我发送请求的方式(邮递员以获得更好的视觉表示) Postman configuration 1

Postman configuration 2

我确信用于生成令牌的json文件属于请求URL中提到的项目的服务帐户(在屏幕截图中用红色标记)。

令牌被添加为 Postman 中的不记名令牌(查看屏幕截图)

问题的原因可能是什么? 有什么想法吗?

c# firebase push-notification firebase-cloud-messaging
1个回答
0
投票

很抱歉听到您的困惑。让我试着澄清一下:

需要明确的是,本例涉及两种类型的代币,您将其中一种用于另一种的目的。您当前正在生成一个访问令牌,如您链接的文档中所述,但要发送到特定设备,您需要访问设备注册令牌,如

send
文档中所述并使用它(再次发送请求中的设备注册令牌)。

希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.