方法一 常规配置接入
这种方法可以适用于内容管家对接自己开发的系统或者其他内容管家未适配的系统,不需要代码开发。可以接入通过cookie认证登录、header认证登录等方式登录的系统。
这个方法对于只能一个账号在线或者是session认证登录的站点不适用。
接入过程中需要准备工作:
打开Chrome(谷歌)浏览器
后台登录地址,以及登录账号,登录密码
登录后台
发布一篇文章,并找到发布文章的提交地址
第一步,使用谷歌浏览器登录网站后台
打开谷歌浏览器,按F12,打开开发者模式,并切换到Network(网络)标签,如图所示:
输入账号密码等信息,并勾选保持会话(保持登录)!!重要,一定要勾选保持会话,登录到后台,找到发布文章的界面,尝试发布一篇文章,在点击确认提交发布前,先清理下开发者记录页面,减少翻阅麻烦,如图所示:
接着就点击确认提交发布按钮,发布一篇文章出去。这时候,在Network(网络)标签上,就有了文章发布提交地址了。如图所示:
点击这个地址,右边会弹出提交的详细信息,包含了地址,headers信息,这个时候,我们通过这里可以获取的信息有:
Request URL (发布地址)
Request Headers (请求头信息)
Payload (Form Data 提交的数据)
Preview (返回的数据)
第二步,添加自定义站点
这些数据需要填写到接口地址上。来到内容管家绑定站点界面,选择自定义网站:
在出现的界面上,逐个填写信息:
网站名称,填写你的网站名称
文章发布地址,填写上面找到的发布地址
文章提交方式,默认选FormData就可以
headers,复制请求头信息到这里粘贴,然后鼠标在输入框外点击一次,让它自动解析。
cookies,按上一步headers操作,cookies已经自动准备好了。
文章其他字段,可能需要填写,比如指定文章status状态,发布时间等,从提交的数据中复制过来
** 注意,这里不是每一个字段都需要选择的,我们只需要复制其中的 status和inputtime就可以了。这里有几个特殊的代替词,可以动态根据实际情况生成,如:{py}
指当前文章标题的首字母,{pinyin}
指当前文章标题的拼音,{timestamp}
指发布文章时候的时间戳,格式1631234543,{datetime}
指发布文章时候的时日期时间,格式2006-01-02 15:04:05,{date}
指发布文章时候的日期,格式2006-01-02。如:modelField[inputtime]: {datetime}
文章栏目字段,通过提交的数据分辨,一般是
cat_id
,category_id
,catid
等等,演示中的是:modelField[catid]
。文章标题字段,通过提交的数据分辨,一般是
title
,tit
,name
等等,演示中的是:modelField[title]
。文章内容字段,通过提交的数据分辨,一般是
content
,message
,body
等等,演示中的是:modelFieldExt[content]
。发布成功标记,在返回的数据里找,只需要填写里面的固定关键词就行了,如:
操作成功
,演示中的我们可以选操作成功
。
至此,填写部分已完成,填写完成的配置界面如图:
点击继续完善进入下一步操作。
第三步,添加栏目
到你的站点后台,找到栏目列表,并将可能需要用到发布文章的栏目,将栏目ID,栏目名称填写到内容管家中来。
仅需要填写需要的栏目就行,如演示中,我们只添加 9,喷雾干燥机原理
、10,喷雾干燥机技术
两个分类。
添加完成后的内容管家配置页面如图:
至此,已经配置完成了,点击继续完善,进行下一步操作
测试发布
点击测试发布按钮,看看是否发布成功。
方法二 开发接口对接接入:
这种方法适用于内容管家对接自己开发的系统的时候使用,需要具备一定的代码开发水平。
如果你有能力开发接口对接内容管家,只需要准备发布接口即可。
内容管家配置自定义站点的时候,会有一个token字段,请记录它,并保存到你的接口文件中。
推送发布文章的时候,会在 post 表单中,携带2个字段: auth_time
和 auth_token
, 你可以通过验证 auth_token
的正确性来判断是否来自内容管家的提交发布。 auth_token
的值通过 md5(auth_time + token) 生成,因此你需要将 表单的auth_time
+ 配置的 token
来MD5 并将结果与 auth_token
对比来确定正确性。
最简单的一个接口示例:
<?php$post = $_POST;// 这个token来自于内容管家配置页面$token = "xKFhFpLzJah4dA6RnVS6LsFo4QRymnN2";$auth_token = md5($post['auth_time'] . $token);if ($post['auth_token'] != $auth_token) { die('TOKEN错误');}// 请将 "数据库地址", "用户名", "密码", "数据库名称" 替换为真实的数据$db = new mysqli("数据库地址", "用户名", "密码", "数据库名称");if (mysqli_connect_error()) { die("无法连接数据库");}$categoryId = $post['category_id'];$title = $post['title'];$content = $post['content'];$time = time();$sql = "INSERT INTO `articles` (`category_id`,`title`,`content`,`add_time`) VALUES('$categoryId','$title','$content',$time)";$res = $db->query($sql);$db->close();if($res){ $res = "发布成功";}else{ $res = "发布失败";}echo $res;