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

Flask集成FCM:发送消息时如何配置fcm_options链接?

解决Firebase Admin SDK中WebpushFcmOptions不存在的问题

问题原因

报错的核心原因是Firebase Admin Python SDK版本过低,或者类的引用路径不符合当前SDK的规范。早期版本的SDK中,FcmOptions是嵌套在WebpushConfig类下的内部类,而非直接在messaging模块下单独暴露。

解决方案

1. 升级Firebase Admin SDK到最新版本

先确保使用的是最新版SDK,运行以下命令完成更新:

pip install --upgrade firebase-admin

2. 修正代码中的类引用

如果升级后仍有问题,或者需要兼容旧版本,改用WebpushConfig.FcmOptions的嵌套写法。同时注意补充原代码缺失的Flask应用初始化语句:

修正后的完整app.py代码:

from firebase_admin import messaging
from flask import request, Flask

# 补充Flask应用初始化
app = Flask(__name__)

@app.route('/send', methods=['GET'])
def send_push():
    if request.method == "GET":
        # 替换为实际的设备注册令牌
        registration_token = ''

        pushlink = "https://myurl.com"

        message = messaging.Message(
            data={
                'score': '850',
                'time': '2:45',
            },
            token=registration_token,
            webpush=messaging.WebpushConfig(
                # 使用WebpushConfig内部的FcmOptions类
                fcm_options=messaging.WebpushConfig.FcmOptions(
                    link=pushlink
                )
            ),
            notification=messaging.Notification(
                title='New Event',
                body='You have a new event!'
            ),
        )
        
        response = messaging.send(message)
        print('Successfully sent message:', response) 
    
    return 'ok'

补充说明

  • 原代码缺失app = Flask(__name__)语句,这会导致Flask服务无法正常启动,必须补充。
  • link参数强制要求HTTPS协议,这一点你的代码已经符合规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 21:22:03