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

如何基于IBM MFP 8创建推送适配器实现应用向用户发通知?

嘿,我来一步步拆解如何在IBM MFP 8中搭建推送适配器,实现步骤完成时给用户推送通知的需求~

基于IBM MFP 8实现推送通知适配器

一、前期准备

先确保你已经搞定这些基础条件:

  • IBM MFP Server 已部署并正常运行
  • 本地安装了MFP CLI工具
  • 你的应用(Android/iOS/Web等)已经在MFP控制台完成注册,并且配置了对应平台的推送服务(比如Android用Firebase Cloud Messaging,iOS用APNs)
  • 应用端已经集成了MFP SDK,并且完成了推送初始化

二、创建推送适配器

  1. 打开终端,用MFP CLI创建一个Java类型的适配器(Java适配器更适合处理后台推送逻辑):
mfp adapter create PushStepNotificationAdapter -t java
  1. 进入适配器目录,编辑adapter.xml文件,开启推送发送权限:
    在<security>标签内添加<pushSender/>,最终配置大概是这样:
<adapter name="PushStepNotificationAdapter"
         displayName="Step Completion Push Adapter"
         description="Send push notifications when a step is completed">
    <security>
        <pushSender/>
        <testSecurity/>
    </security>
    <deployments>
        <targets/>
    </deployments>
</adapter>

三、编写推送逻辑代码

进入适配器的Java代码目录(src/main/java/com/ibm/mfp/adapters/),修改PushStepNotificationAdapterResource.java,添加触发推送的API接口:

import com.ibm.mfp.adapter.api.MFPJAXRSApplication;
import com.ibm.mfp.push.server.notification.MFPPushNotification;
import com.ibm.mfp.push.server.notification.MFPPushNotificationBuilder;
import com.ibm.mfp.push.server.service.MFPPush;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.QueryParam;

@Path("/")
public class PushStepNotificationAdapterResource extends MFPJAXRSApplication {

    // 触发步骤完成推送的接口
    @POST
    @Path("/sendCompletionAlert")
    public String sendStepCompletion(@QueryParam("userId") String userId, @QueryParam("stepTitle") String stepTitle) {
        try {
            // 构建推送通知内容
            MFPPushNotification notification = new MFPPushNotificationBuilder()
                    .alert("该步骤已成功完成") // 通知提示文本
                    .customPayload("{\"step\":\"" + stepTitle + "\",\"status\":\"completed\"}") // 可选:自定义负载,供应用端处理额外逻辑
                    .build();

            // 给指定用户发送推送
            MFPPush.getInstance().sendNotificationToUser(userId, notification);

            return "{\"status\":\"success\",\"msg\":\"推送通知已发送\"}";
        } catch (Exception e) {
            e.printStackTrace();
            return "{\"status\":\"error\",\"msg\":\"推送失败:" + e.getMessage() + "\"}";
        }
    }
}

这里解释下关键逻辑:

  • sendNotificationToUser:给单个指定用户发送推送,如果需要给多个用户发,可以用sendNotificationToUsers;广播给所有用户用sendNotificationToAllDevices
  • 自定义负载customPayload可以携带步骤名称、状态等额外信息,方便应用端做后续处理(比如跳转到对应步骤页面)

四、部署适配器到MFP Server

  1. 在终端中进入适配器根目录,执行构建命令:
mfp adapter build
  1. 构建完成后,部署到MFP Server:
mfp adapter deploy

也可以直接在MFP控制台的“适配器”页面,上传构建好的.adapter包完成部署。

五、应用端接收推送的配置

以Android为例,需要在应用中实现推送消息的接收逻辑:

public class MyPushMessagingService extends FirebaseMessagingService {
    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        super.onMessageReceived(remoteMessage);
        // 处理MFP推送过来的消息
        String alertContent = remoteMessage.getNotification().getBody();
        // 构建系统通知栏消息并显示
        NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "step_completion_channel")
                .setSmallIcon(R.drawable.ic_notification)
                .setContentTitle("步骤完成提醒")
                .setContentText(alertContent)
                .setPriority(NotificationCompat.PRIORITY_DEFAULT);

        NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
        notificationManager.notify(1, builder.build());
    }
}

iOS端则需要实现didReceiveRemoteNotification方法来处理推送消息,这里就不展开了,核心是解析并展示通知内容。

六、触发推送

当你的业务系统确认某个步骤完成时,调用适配器的API即可触发推送:
发送POST请求到:

http://<你的MFP服务器地址>/mfp/api/adapters/PushStepNotificationAdapter/sendCompletionAlert?userId=用户唯一标识&stepTitle=下单确认

替换用户唯一标识为实际的用户ID(这个ID需要和应用端注册推送时传入的ID一致,应用端注册代码一般是MFPPush.getInstance().registerDevice(userId))。

一些关键注意事项

  • 确保用户ID已经和设备绑定:应用登录后必须调用registerDevice方法,把用户ID和当前设备关联起来,否则MFP找不到对应的推送目标
  • 推送服务配置要正确:在MFP控制台的应用设置里,必须上传对应平台的推送凭证(比如Firebase的Server Key、iOS的APNs证书)
  • 测试阶段可以先用MFP控制台的“推送”页面手动发送测试通知,验证基础推送链路是否正常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:24:02