SenderId 不匹配,PERMISSION_DENIED Firebase FCM v1

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

我尝试使用 FCM 发送通知,但出现错误, 我在 Firebase 中创建了一个新项目。

如何生成新的服务器密钥?如下图所示?

授权:承载ya29.ElqKBGN2Ri_Uz...HnS_uNreA

我的PHP代码

<?php
$serverKey = 'ya29.a0AfB_byDuIRA2ZCRIgemWrXw0utBdCHfdlNJAwVGve5NNgeTPp9X_KMuvGS7v9AgjAY4wWLL2MHjxdmpznGJ2ZC9Y6PJMP6472RQ82g0GtS_xjZKDlrJKJYgeTw-2KwNcTgTMEUL-W9Tq1uXypuscSQX6jUsDMgo-RRHuaCgYKASASARISFQHGX2Mij39fW1eEtCcxC3aouQsyyw0171';

$deviceToken = 'MY VALID DEVICE TOKEN';

$messageData = [
    'message' => [
        'token' => $deviceToken,
        'notification' => [
            'title' => 'Title of the Notification',
            'body' => 'Body of the Notification',
        ],
    ],
];

$jsonData = json_encode($messageData);

$headers = [
    'Authorization: Bearer ' . $serverKey,
    'Content-Type: application/json',
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://fcm.googleapis.com/v1/projects/push-notification-g28f2/messages:send');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);

$result = curl_exec($ch);

$decodedResponse = json_decode($result, true);

echo 'Response: <pre>' . json_encode($decodedResponse, JSON_PRETTY_PRINT) . '</pre>';

curl_close($ch);

?>

回应:

{
    "error": {
        "code": 403,
        "message": "SenderId mismatch",
        "status": "PERMISSION_DENIED",
        "details": [
            {
                "@type": "type.googleapis.com/google.firebase.fcm.v1.FcmError",
                "errorCode": "SENDER_ID_MISMATCH"
            }
        ]
    }
}

请帮我解决这个问题,我被困得很厉害,我不知道如何解决。 我已经参考了Link,但仍然面临同样的错误。

经过Google太多的研发,我发现我的$serverKey',生成错误, 就像下图一样,有人可以帮忙吗? 如何生成新的服务器密钥?如下图所示?

授权:承载ya29.ElqKBGN2Ri_Uz...HnS_uNreA

我尝试使用Postman添加服务器密钥,我已经从Google Console下载了JSON文件并一一添加了数据,如下所示

在 Postman 中打开“授权”选项卡,选择 Type =“OAuth 2.0”,然后单击“获取新访问令牌”。出现对话框。

领域: 代币名称 - 输入您想要的内容

授权类型 = 授权代码

回调 URL = 来自下载的 json 的redirect_uris

身份验证 URL = auth_uri

访问令牌 URL = token_uri

客户端 ID = client_id

客户端秘密 = client_secret

范围 =“https://www.googleapis.com/auth/firebase.messaging”

状态 - 留空

客户端身份验证 = 默认,作为基本身份验证标头发送

点击“请求令牌”

并获取新的服务器密钥

我仍然遇到同样的错误

邮差图片

认证

新服务器密钥 服务器基

firebase-cloud-messaging
1个回答
0
投票

同样的情况,请问你解决了吗?

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