钉钉开发文档

设置RDS实例接收钉钉推送

更新时间: 2019-6-3

前置语

1.开发者可以使用自己的MYSQL数据库接收钉钉的数据推送。
  也可以使用钉钉云上的MYSQL RDS实例来接收钉钉数据推送。

2.开发者自己的MYSQL数据库可以被公网访问,场景仅限于进行钉钉应用的开发调试。
  钉钉云环境的MYSQL RDS实例不可以被公网访问,场景用于进行钉钉应用的线上环境运行。

设置自有的RDS用于接收钉钉推送

注意:开发者自行安装Mysql的时候,请选择Mysql 5.6或者5.7版本。不要选择Mysql的8.x版本

删除现有MYSQL(可跳过)

yum remove mysql mysql-server mysql-libs compat-mysql51
rm -rf /var/lib/mysql
rm /etc/my.cnf
rm -rf /var/log/mysqld.log

下载安装MYSQL

yum install mysql-server                  下载
service mysqld start                      启动mysql实例
cat /var/log/mysqld.log|grep 'password'   查看新安装mysql的默认账号密码

更改MYSQL默认密码

登录MYSQL数据库

ip,{ip},ip,{port},${username}分别为开发者自己MYSQL实例的IP,端口,账号。

mysql -h -P${prot}  -u{username} -p

执行命令更改root用户默认密码

set password = password('1#QAZ2@wsx');                        密码自行更换。
alter user 'root'@'localhost' password expire never;          密码不过期
flush privileges;

设置字符集

使用命令查看mysql字符集设置。如果字符集不是utf8mb4请按照下面指引修改。支持emoji表情存储。

show variables like '%char%';

可以看到实例的字符集默认为latin1或者utf8

+--------------------------------------+----------------------------+
| Variable_name                        | Value                      |
+--------------------------------------+----------------------------+
| character_set_client                 | utf8                       |
| character_set_connection             | utf8                       |
| character_set_database               | latin1                     |
| character_set_filesystem             | binary                     |
| character_set_results                | utf8                       |
| character_set_server                 | latin1                     |
| character_set_system                 | utf8                       |
| character_sets_dir                   | /usr/share/mysql/charsets/ |
| validate_password_special_char_count | 1                          |
+--------------------------------------+----------------------------+

修改mysql配置文件/etc/my.cnf文件,增加配置如下

[mysqld]
character-set-server=utf8mb4 
[client]
default-character-set=utf8mb4 
[mysql]
default-character-set=utf8mb4

更改配置之后重启mysql

service mysqld restart

再次查看实例字符集设置,已经改为了utf8mb4

+--------------------------------------+----------------------------+
| Variable_name                        | Value                      |
+--------------------------------------+----------------------------+
| character_set_client                 | utf8mb4                    |
| character_set_connection             | utf8mb4                    |
| character_set_database               | utf8mb4                    |
| character_set_filesystem             | binary                     |
| character_set_results                | utf8mb4                    |
| character_set_server                 | utf8mb4                    |
| character_set_system                 | utf8                       |
| character_sets_dir                   | /usr/share/mysql/charsets/ |
| validate_password_special_char_count | 1                          |
+--------------------------------------+----------------------------+

执行SQL

建库

CREATE DATABASE ding_cloud_push DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

创建用户
创建一个数据库用户,用于连接ding_cloud_push数据库。

注意:更改你自己的账号密码。密码包含中英文大小写字母以及特殊符号。要满足Mysql密码安全规则。否则无法执行SQL

CREATE USER 'your_name'@'47.98.105.56' IDENTIFIED BY 'your_pass';

用户授权
授权创建的数据库用户,赋予数据库用户增删改查ding_cloud_push数据库表的权限。

注意:授权你自己的账户。
       47.98.105.56是钉钉连接开发者DB的外网IP。

GRANT DELETE,SELECT,UPDATE,INSERT ON `ding_cloud_push`.* TO 'your_name'@'47.98.105.56';

权限生效

FLUSH PRIVILEGES;

建表

注意:切换到ding_cloud_push数据库下执行。

open_sync_biz_data表用于接收高优先级事件的推送信息。
open_sync_biz_data_medium用于接收低优先级事件的推送信息。

CREATE TABLE `open_sync_biz_data` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `gmt_create` datetime NOT NULL COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL COMMENT '更新时间',
  `subscribe_id` varchar(64) NOT NULL COMMENT '订阅方ID',
  `corp_id` varchar(64) NOT NULL COMMENT '企业ID',
  `biz_id` varchar(128) NOT NULL COMMENT '业务ID',
  `biz_type` int(11) NOT NULL COMMENT '业务类型',
  `biz_data` text NOT NULL COMMENT '业务数据',
  `open_cursor` bigint(20) NOT NULL COMMENT '对账游标',
  `status` int(11) NOT NULL COMMENT '处理状态0为未处理。其他状态开发者自行定义',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_subscribe_corp_biz` (`subscribe_id`,`corp_id`,`biz_id`,`biz_type`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COMMENT='高优先级数据';

CREATE TABLE `open_sync_biz_data_medium` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `gmt_create` datetime NOT NULL COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL COMMENT '更新时间',
  `subscribe_id` varchar(64) NOT NULL COMMENT '订阅方ID',
  `corp_id` varchar(64) NOT NULL COMMENT '企业ID',
  `biz_id` varchar(128) NOT NULL COMMENT '业务ID',
  `biz_type` int(11) NOT NULL COMMENT '业务类型',
  `biz_data` text NOT NULL COMMENT '业务数据',
  `open_cursor` bigint(20) NOT NULL COMMENT '对账游标',
  `status` int(11) NOT NULL COMMENT '处理状态0为未处理。其他状态开发者自行定义',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_subscribe_corp_biz` (`subscribe_id`,`corp_id`,`biz_id`,`biz_type`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COMMENT='中低优先级数据';

设置非钉钉云MySql接收推送

登录开发者后台,选择“应用开发” -> “第三方企业应用” -> “钉钉云” -> “云推送数据源”,点击“添加MySql实例”按钮。
输入有ISV自有的的RDS信息。IP,端口,账号,密码。点击“确定”。

image.png

设置钉钉云RDS用于接收钉钉推送

登录RDS

登录开发者后台,选择“应用开发” -> “第三方企业应用” -> “钉钉云” -> “基础信息”,点击“登陆控制台”按钮。
image.png

进入子用户用户中心,选择“云数据库 RDS 版”。

选择购买的RDS,点击“管理”,登录RDS管理控制台。

如果您是首次登陆该RDS,请先设置初始登陆密码。

如果您是首次登陆该RDS,请先设置IP白名单。

注意:设置完IP白名单之后才可以使用DMS连接数据库。

登陆RDS数据库。
输入连接串填写           :   “数据库内网连接地址:端口”
数据库用户名密码填写 :    “RDS的初始账号密码”


设置字符集

设置RDS的默认字符集,更改完点击右上角的提交变更按钮,重启RDS。

重要:RDS默认字符集是utf8,不支持emoji表情。需要更改为utf8mb4.
阿里云RDS字符集设置文档参见https://help.aliyun.com/knowledge_detail/41702.html#1


操作RDS数据库

建库
登陆阿里云RDS控制台,打开SQL操作界面,执行如下SQL,创建一个用于接收钉钉推送数据的数据库。

CREATE DATABASE ding_cloud_push DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

创建用户
创建一个数据库用户,用于连接ding_cloud_push数据库。

注意:更改你自己的账号密码

CREATE USER 'your_name'@'%' IDENTIFIED BY 'your_pass';

用户授权
授权创建的数据库用户,赋予数据库用户增删改查ding_cloud_push数据库表的权限。

注意:授权你自己的账户

GRANT DELETE,SELECT,UPDATE,INSERT ON `ding_cloud_push`.* TO 'your_name'@'%';

权限生效

FLUSH PRIVILEGES;

建表
open_sync_biz_data表用于接收高优先级事件的推送信息。
open_sync_biz_data_medium用于接收低优先级事件的推送信息。

CREATE TABLE `open_sync_biz_data` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `gmt_create` datetime NOT NULL COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL COMMENT '更新时间',
  `subscribe_id` varchar(64) NOT NULL COMMENT '订阅方ID',
  `corp_id` varchar(64) NOT NULL COMMENT '企业ID',
  `biz_id` varchar(128) NOT NULL COMMENT '业务ID',
  `biz_type` int(11) NOT NULL COMMENT '业务类型',
  `biz_data` text NOT NULL COMMENT '业务数据',
  `open_cursor` bigint(20) NOT NULL COMMENT '对账游标',
  `status` int(11) NOT NULL COMMENT '处理状态0为处理。其他状态开发者自行定义',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_subscribe_corp_biz` (`subscribe_id`,`corp_id`,`biz_id`,`biz_type`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COMMENT='高优先级数据';

CREATE TABLE `open_sync_biz_data_medium` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `gmt_create` datetime NOT NULL COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL COMMENT '更新时间',
  `subscribe_id` varchar(64) NOT NULL COMMENT '订阅方ID',
  `corp_id` varchar(64) NOT NULL COMMENT '企业ID',
  `biz_id` varchar(128) NOT NULL COMMENT '业务ID',
  `biz_type` int(11) NOT NULL COMMENT '业务类型',
  `biz_data` text NOT NULL COMMENT '业务数据',
  `open_cursor` bigint(20) NOT NULL COMMENT '对账游标',
  `status` int(11) NOT NULL COMMENT '处理状态0为处理。其他状态开发者自行定义',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_subscribe_corp_biz` (`subscribe_id`,`corp_id`,`biz_id`,`biz_type`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COMMENT='中低优先级数据';

设置钉钉云的RDS接收推送

登录开发者后台,选择“应用开发” -> “第三方企业应用” -> “钉钉云” -> “云推送数据源”
选择一个RDS,点击“设置”,输入创建账号时填写的DB账号和密码,点击右下角“确定”。

image.png

以上内容是否对您有帮助:
在文档使用中是否遇到以下问题(多选):
  • 内容错误
  • 更新不及时
  • 链接错误
  • 缺少代码/图片示例
  • 太简单/步骤待完善
手机号
更多建议
提交成功,感谢您的反馈!