跳转到主要内容

概览

OneSignal + MySQL 集成可以将您的 MySQL 数据库中的自定义事件同步到 OneSignal,以基于用户行为触发自动化消息活动和 Journey。 MySQL 是一个广泛使用的开源关系型数据库管理系统,非常适合存储结构化事件数据,可为个性化消息活动提供支持。

要求

  • 访问自定义事件(目前处于测试阶段)
  • 升级账户计划(免费应用不可用)。

MySQL 要求

  • MySQL Community 5.7 或更高版本,或 MariaDB 的最新版本
  • 包含结构化行为数据的 事件表
  • 从 OneSignal 到您的 MySQL 实例的 网络连接
  • 支持 TLS v1.2 或更高版本

设置

1

为 OneSignal 创建专用用户

创建一个具有只读权限的专用用户账户:
-- 创建能够使用密码登录的 census 用户
CREATE USER CENSUS IDENTIFIED BY '<strong, unique password>';

-- 授予对您的事件架构的只读访问权限
GRANT SELECT ON <your_schema>.* TO CENSUS;
如果您有多个包含事件数据的架构,请为每个架构重复 GRANT SELECT 语句。
2

配置 OneSignal 连接

在 OneSignal 中,前往 数据 > 集成,然后点击 添加集成选择 MySQL 并提供您的连接详细信息:
  • 主机: 您的 MySQL 服务器主机名
  • 端口: MySQL 端口(通常为 3306)
  • 数据库: 包含您的事件表的数据库名称
  • 用户名: CENSUS
  • 密码: 您在上面创建的密码
3

测试连接

点击 测试连接 以验证 OneSignal 可以成功连接到您的 MySQL 数据库并访问您的事件表。

事件数据映射

将您的 映射到 OneSignal 的自定义事件格式:
OneSignal 字段描述必需
nameevent_name事件标识符
external_iduser_id用户标识符
timestampevent_timestamp事件发生时间
propertiesevent_data

事件表模式示例

CREATE TABLE user_events (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    event_name VARCHAR(100) NOT NULL,
    user_id VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    event_data JSON,
    session_id VARCHAR(255),
    device_type VARCHAR(50)
);

表模式

直接选择您的事件表,OneSignal 将所有行同步为单独的事件。

SQL 查询模式

编写自定义 SQL 查询来转换您的事件数据:
-- 示例:近期高价值事件
SELECT
    event_name,
    user_id,
    created_at as timestamp,
    event_data as payload
FROM user_events
WHERE created_at >= DATE_SUB(NOW(), INTERVAL 7 DAY)
    AND JSON_EXTRACT(event_data, '$.value') > 100
ORDER BY created_at DESC;

高级网络配置

OneSignal 可以使用高级网络控制成功连接到 MySQL 实例,包括区域约束、IP 地址允许列表或 SSH 隧道。 OneSignal 支持使用 TLS 版本 1.2 及更高版本的 MySQL 以实现安全连接。

常见问题

支持哪些 MySQL 版本?

OneSignal 支持 MySQL Community 5.7 或更高版本,以及 MariaDB 的最新版本。

我可以连接到私有网络中的 MySQL 吗?

是的,OneSignal 支持 SSH 隧道和 IP 允许列表来连接私有网络或防火墙后的 MySQL 实例。
I