You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在FCM控制台UI外注册新vapidKey?Web推送令牌生成疑问

更新

正如Gerardo指出的,vapidKey ≠ FCM令牌。

我终于解决了问题,但不确定这是不是最佳方案。

以下是我生成新令牌的代码:

try{
            if(currentToken) await deleteToken(messaging,currentToken)
            if(Notification.permission !== 'granted') await Notification.requestPermission();
            currentToken = await getToken(messaging,vapidKey);
            $.ajax({
                type:"GET",
                url:"/fcm/register-token",
                data:{token:currentToken},
                success:(saved)=>{
                    if(saved) console.log(saved,' New token registered ',currentToken)
                    else console.log('Unable to save token!')
                }
            })
        }
        catch(e){console.log(e)}

问题

我正在用JavaScript测试FCM推送通知,已在FCM控制台UI中手动生成了一个“Web推送证书”(vapidKey),该密钥可用于向单个令牌发送测试通知,但我不清楚其他用户如何向FCM注册新密钥。

我肯定误解了某些基础概念,甚至不知道该搜索什么内容。

// TODO: Find out how to generate new registration token as needed
const vapidKey = {vapidKey:"BLgq_6FY0suqAy9llMyYX03o9K9n4FHba1gCnPz6KmG9oh6K8v3Ws4SIG9KTILfN0_8np9PfT5bPqgTDXfCA9dc"};

async function fcm_init(){
    try{
        // TODO: user interaction for notification permission
        await Notification.requestPermission()
        const currentToken = await getToken(messaging,vapidKey);
        // TODO: Send token to server to save in tbl_fcm
        console.log(currentToken);
    }
    catch(err){
        console.log(err);
    }
}fcm_init()

在此示例中,vapidKey是硬编码的,但我该如何在无需手动在FCM控制台UI操作的情况下,为应用中的每个用户获取不同的密钥?

这是我为用户生成令牌的密钥的位置,我希望避免为系统中的每个用户手动执行此操作。

这是我为用户生成令牌的密钥的位置,我希望避免为系统中的每个用户手动执行此操作。

内容的提问来源于stack exchange,提问作者Kyle Berry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 07:05:19