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
相关产品推荐
相关产品推荐

