「秀米图文同步」是秀米推出的新版本同步服务,使用此服务,用户可以将自己的图文传输到某个绑定的平台,类似于秀米同步到微信公众号的功能。
同步服务有两个参与方:平台和秀米用户。平台负责提供接入的接口,供秀米用户绑定。秀米用户绑定接口,同步图文到平台。
秀米用户绑定成功后,可以在图文编辑器的导出菜单内找到新的导出选项,名称默认与app的名称相同(或者等于bind_name,见绑定接口的参数说明)。如下图:
本网页应由平台提供给平台用户使用(比如点击“绑定秀米”按钮)
URL
参数说明
参数 | 说明 |
---|---|
partner_user_id | 用户在平台(不是秀米)的唯一ID。 可以不使用平台的用户编号,而为秀米对接特地生成一个专用的ID字符串。 |
appid | 在创建秀米同步app时获得的app id。 |
nonce | 随机字符串,由您的平台在每一次签名时生成,使用于签名算法内。 |
timestamp | 当前UNIX时间戳,单位:秒。需不早于当前时间5分钟。 |
signature | 根据各项参数计算得出的签名字符串。算法见下面的说明。 |
bind_name | 绑定名称,非必需字段,少于20个汉字,建议少于10个汉字。如果传递了bind_name,秀米会在导出菜单中显示“同步到「bind_name」,如果不传递bind_name,秀米会在导出菜单中显示“同步到「app_name」。 |
signature计算方法
JavaScript代码的例子
let data = [partner_user_id, secret, timestamp, nonce]; data.sort(); let cs = data[0] + data[1] + data[2] + data[3]; let signature = md5(md5(cs));
注:其中partner_user_id
, secret
, timestamp
, nonce
都是字符串
PHP代码的例子
$timestamp = time(); $nonce = mt_rand(); $array = [$secret, $timestamp, $nonce, $partner_user_id]; sort($array, SORT_STRING); $signature = md5(md5(implode($array)));
绑定流程
本网页应由平台提供给平台用户使用(比如点击“编辑图文”按钮或链接)
URL
https://xiumi.us/auth/partner/edit?open_id=eegh5ootiu5re3rahwup6EiYaiSe5vie&article_id=123456
平台发起图文编辑流程
秀米服务器会在后台调用您的接口。
本接口用于接收用户同步的某一个图文的HTML。本接口会在用户点击 “同步到……” 菜单后触发,在调用本接口前,秀米会先调用“传送图片的接口”(见下一节),确保所有图片已经传输成功,并替换所有的图片URL。
URL
POST https://www.example.com/您的HTML接收路径?partner_user_id=a100005667161
验证
对接平台需提供URL用于接收图文HTML,URL授权验证方式为:
秀米在调用您的URL时,会在HTTP header中增加
"Authorization: secret ielep1kieshaeteeCie1eeShixooPhie"
其中的“ielep1kieshaeteeCie1eeShixooPhie”,是您在秀米官网申请app时,页面上显示的secret。
您的URL收到调用请求时,应该验证此header。
参数说明
参数 | 说明 |
---|---|
partner_user_id | 用户ID |
数据
秀米调用此接口时,会将图文内容以JSON文本的形式,放置在request body
中。格式如下:
{ "articles" : [ { "description": "<section style=\"box-sizing: border-box; font-style: normal; font-weight: 400; text-align: justify; font-size: 16px;\"><section style=\"text-align: center; justify-content: center; margin: 10px 0% 0px; transform: translate3d(-1px, 0px, 0px); -webkit-transform: transl...", "article_id": 9013, "picurl": "https://www.example.com/upload/images/cover.jpg", "title": "标题:新年快乐", "summary": "文章简介", } ] }
返回值
您的接口正常接收HTML后,应该返回如下内容
{ "code": 0, "msg": "success" }
调试
此接口调用出现问题时,秀米会将平台服务器返回的内容
输出到浏览器控制台。
本接口用于接收图文HTML中所有使用的图片文件
URL
POST https://www.example.com/您的图片上传路径?partner_user_id=a100005667161
验证
对接平台需提供URL用于接收图文附属的图片文件,URL授权验证方式为:
秀米在调用您的URL时,会在HTTP header中增加
"Authorization: secret ielep1kieshaeteeCie1eeShixooPhie"
其中的“ielep1kieshaeteeCie1eeShixooPhie”,是您在秀米官网申请app时,页面上显示的secret。
您的URL收到调用请求时,应该验证此header。
注:当一篇图文中包含多个图片时,秀米会为每一个图片调用一次图片接口
参数说明
参数 | 说明 |
---|---|
partner_user_id | 用户ID |
数据
图片二进制文件以multipart/form-data的形式发送。图片的文件名是img-upload
返回值
您的接口正常接收图片后,应该返回如下内容
{ "code": 0, "msg": "", "data": { "url": "图片在您平台的URL" }
我们会将HTML中的所有秀米图片URL替换为返回值中的URL。
curl -X POST \ 'http://www.example.com/path_for_upload_image \ -H 'cache-control: no-cache' \ -H 'Authorization: secret ielep1kieshaeteeCie1eeShixooPhie' \ -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \ -F img-upload=123.jpg
URL
POST https://www.example.com/您的通知接收路径
对接平台需提供URL用于接收一些通知消息和数据回传,URL授权验证方式为:
秀米在调用您的URL时,会在HTTP header中增加
"Authorization: secret ielep1kieshaeteeCie1eeShixooPhie"
其中的“ielep1kieshaeteeCie1eeShixooPhie”,是您在秀米官网申请app时,页面上显示的secret。
您的URL收到调用请求时,应该验证此header。
注:「secret被重置」消息验证方式不同。
绑定成功
{ "type": "bind", "app_id": "au4eosh5osaev2ohtoogahv5uivoh4Ea", "partner_user_id": "a3123456", "open_id": "ue5ahShoh7raegaesooyaisooriep9ri", }
解绑成功
{ "type": "unbind", "app_id": "au4eosh5osaev2ohtoogahv5uivoh4Ea", "partner_user_id": "a3123456", "open_id": "ue5ahShoh7raegaesooyaisooriep9ri", }
HTML接口出错
{ "type": "err_html", "app_id": "au4eosh5osaev2ohtoogahv5uivoh4Ea", "open_id": "ue5ahShoh7raegaesooyaisooriep9ri", "err_code": 101, "err_msg": "the readable message" }
图片接口出错
{ "type": "err_image", "app_id": "au4eosh5osaev2ohtoogahv5uivoh4Ea", "open_id": "ue5ahShoh7raegaesooyaisooriep9ri", "err_code": 101, "err_msg": "the readable message" }
secret(应用密钥)被重置
特殊说明:由于secret已被重置,此消息使用重置前的旧secret认证header,消息发送后,旧secret即被秀米丢弃
{ "type": "secret_reset", "app_id": "au4eosh5osaev2ohtoogahv5uivoh4Ea", }
app控制台用于创建、删除和修改秀米同步app
https://xiumi.us/#/user/ownerpartnerbind
注意:以上入口需秀米用户登录后才能正常访问。否则创建app时会失败。
目前解绑的入口没有公开在官网,秀米用户可以访问 https://xiumi.us/#/user/partnerbind 查看自己绑定的平台。此页面提供解绑功能。