|
|
Discuz! 的微社区接口
接口概述Discuz! 的微社区接口由系统插件 “ 掌上论坛 1.3.6”版本及“ 微信登录 1.0.5” 版本提供,此接口我们通过插件形式向 Discuz! X2.5、Discuz! X3.x 版本提供,Discuz! 新版将内置此接口。通过此接口,您可以让你的插件接入 Discuz! 版微社区,使您的应用通过微社区在微信的公众号中成为推广、营销、增强互动等各方面利器。 同时,微社区上的应用均经过了正版验证,通过非法渠道安装的应用不会在微社区中显示。 这 2 个插件已允许被其他插件合并安装, 开发者可在插件的版本设置中设置合并安装“mobile.plugin.25962”和“wechat.plugin.35632”即可。 调用本接口前您需要在插件中引用接口文件 require_once DISCUZ_ROOT . './source/plugin/wechat/wechat.lib.class.php';嵌入点接口嵌入点接口用于把您开发的插件方法或数据注册到微信接口中
注册嵌入点WeChatHook::updateAPIHook($data)此方法可以将一个方法注册到微社区嵌入点上 $data 格式:
array( 嵌入点ID => 参数)$data 参数包含以下内容| KEY | 含义 | | plugin | 插件标识 | | include | 含有待注册方法的文件,此文件应位于您所注册的插件的目录下 | | class | 待注册方法的类名 | | method | 待注册方法名 | include、class、method 留空表示删除已注册的嵌入点
范例$data = array( array('forumdisplay_variables' => array( 'plugin' => 'wechat', 'include' => 'wsqapi.class.php', 'class' => 'WSQAPI', 'method' => 'forumdisplay_variables' )), array('viewthread_variables' => array( 'plugin' => 'wechat', 'include' => 'wsqapi.class.php', 'class' => 'WSQAPI', 'method' => 'viewthread_variables' )),);WeChatHook::updateAPIHook($data);嵌入点ID 详见下面的《嵌入点列表》
获取嵌入点WeChatHook::getAPIHook($getplugin = '')此方法可以获取已注册的嵌入点| 参数 | 参数含义 | | $getplugin | 插件标识,留空表示获取所有内容 |
删除嵌入点WeChatHook::delAPIHook($getplugin)此方法可以删除指定插件所有注册的嵌入点
获取独立页面应用的 URL 地址WeChatHook::getPluginUrl($pluginid, $param = array())此方法可以返回在微社区中独立页面应用的 URL 地址| 参数 | 参数含义 | | $pluginid | 插件标识,同 plugin.php 下的 id 参数
可附加“:”后缀用以调用指定的模块,如“test:show”则调用“test/show.inc.php”文件 | | $param | 此页面所包含的 GET 参数数组 |
嵌入点列表
| 嵌入点名称 | 嵌入点ID | 返回值类型 | 附加说明 | | 列表页 | | 边栏 | forumdisplay_sideBar | string | | | 主题底部 | forumdisplay_threadBottom | array(tid => HTML 内容, ...) | 只显示一个插件 | | 用户信息 | forumdisplay_authorInfo | array(uid => HTML 内容, ...) | | | 帖子风格模板 | forumdisplay_threadStyleTemplate | array(风格代号 => HTML 模板,...) | HTML 模板可调用 Discuz! 微社区中的 artTemplate 语法,也可以通过自定义变量替换相应的内容(“帖子风格”嵌入点中的 var 参数) | | 帖子风格 | forumdisplay_threadStyle | array(
tid => array(
'id' => 风格代号,
'var' => array(变量 => 值, ...)
),
...
) | 风格代号建议用英文字母及数字组成,代号在“帖子风格模板”嵌入点中必须已定义。风格输出时替换模板中“{变量}”的内容为相应的值 | | 顶部区域 | forumdisplay_topBar | array(
array(
'name' => 区块名称,
'html' => HTML 内容,
'more' => 更多链接(可选)
),
...
) | 区块名称建议不超过四个汉字。更多链接所指的页面如果是位于微社区的独立页面应用,请用 getPluginUrl 方法获取 URL 链接 | | 头部区域 | forumdisplay_headerBar | string | 只显示一个插件 | | 内容页 | | 边栏 | viewthread_sideBar | string | | | 帖子底部 | viewthread_postBottom | array(pid => HTML 内容, ...) | 只显示一个插件 | | 用户信息 | viewthread_authorInfo | array(uid => HTML 内容, ...) | | | 首帖内容上方 | viewthread_threadTop | string | 只显示一个插件 | | 首帖内容下方 | viewthread_threadBottom | string | 只显示一个插件 | | 顶部区域 | viewthread_topBar | string | 只显示一个插件 | | 个人中心 | | 用户信息 | profile_authorInfo | string | | | 扩展信息 | profile_extraInfo | array(
array(
'name' => 名称,
'value' => HTML 内容,
'link' => 链接
),
...
) | 每条扩展信息中 value 和 link 不能共存,当提供 value 参数时 link 参数失效 | 注意事项
- 1、如果多个应用使用同一个嵌入点,部分嵌入点将优先显示第一个返回内容不为空的插件,请告知站长自行到“微信登录”的“接口”设置中调整接口显示顺序
- 2、嵌入点如有更新时“掌上论坛”及“微信登录”无需更新,请直接更新您的插件即可
- 3、微社区针对嵌入点中的 HTML 内容进行了过滤,不允许输出 <script> 等不安全的代码,开发时请注意
开发与测试为了有效的保护应用的版权,微社区上的应用只有真正下载、分享的站点才可显示,因此在开发微社区应用时你必须为自己的开发站点手动添加 授权。 如何开始设计 Discuz! 版微社区? - 1、在“应用管理”菜单选择“发布应用”,选择“插件”,填写相关资料
- 2、进入“添加版本”步骤,填写相关资料,无需上传文件包,点击“提交”按钮
- 3、选择“统计记录”中的“安装记录”,选择您刚才创建的版本,点击下方的“[添加授权]”链接
- 4、填写您的开发站点的 URL 和 网站 ID,如看到“授权微社区访问”请勾选
- 5、如您的开发站点已成功开通了 Discuz! 微社区,可在“微信登录”插件的“微社区设置”中看到您的微社区的 URL。建议在 Chrome 浏览器开发模式的 Emulation 模式下模拟手机访问此 URL
- 6、开始开发您的第一个 Discuz! 版微社区插件
独立页面应用独立页面应用的 URL 链接地址通过 getPluginUrl 方法获得,获得后的地址,您可以输出到相应的嵌入点里或者添加到微信公众号的菜单中 在顶部区域添加独立页面入口的范例function forumdisplay_topBar() { require_once DISCUZ_ROOT.'./source/plugin/wechat/wechat.lib.class.php'; $return = array(); $return[] = array( 'name' => 'TopBar1', 'html' => '[authorInfo/TopBar1]', 'more' => WeChatHook::getPluginUrl('wsq_demo:view', array('a' => 1, 'b' => 2)), ); return $return;}上面的独立页面 URL 将跳转到 plugin.php?id=wsq_demo:view&a=1&b=2 页面中,即 wsq_demo/view.inc.php 脚本
在微社区的独立页面中,我们提供了一套 openJS 供您调用,首先在的网页中先引入 openJs <script type="text/javascript" src="http://wsq.discuz.qq.com/cdn/discuz/js/openjs.js"></script>WSQ.initPlugin(obj)介绍: 插件初始化,将名称显示在顶栏 参数: obj = {name:插件名称} 范例WSQ.initPlugin({name:'测试插件'});WSQ.initBtmBar(array)介绍: 初始化底栏 参数: array[{name:'菜单名称1', pluginid:'插件标识1', param:'参数1'}, {name:'菜单名称2', pluginid:'插件标识2', param:'参数2'}, ...] name: 菜单名称 pluginid: 插件标识,同 plugin.php 下的 id 参数,可附加“:”后缀用以调用指定的模块,如“test:show”则调用“test/show.inc.php”文件 param: 此页面所包含的 GET 参数数组 http_build_query 后的字串 范例var menu = new Array();menu.push({name:"menu1", pluginid: 'wsq_demo:a', param: 'a=1&b=2' });menu.push({name:"menu2", pluginid: 'wsq_demo' });WSQ.initBtmBar(menu);WSQ.showBtmBar()介绍: 显示底栏,显示前请先初始化底栏 WSQ.hideBtmBar()介绍: 隐藏底栏 WSQ.showHeadBar()介绍: 显示顶栏 WSQ.showHeadBar()介绍: 隐藏顶栏。独立页面的 GET 中添加 _hd 参数可默认隐藏顶栏 WSQ.initShareWx(obj)介绍: 初始化微信分享参数 参数: obj = {img:'图片地址', desc:'介绍', title:'标题', pluginid:'插件标识', param: '参数'} 范例var opts = { img: 'http://www.discuz.net/static/image/common/logo.png', desc: '插件页面分享时候的描述', title: '插件页面要分享的标题', pluginid: 'wsq_demo:a', param: 'a=1&b=2'};WSQ.initShareWx(opts);
范例插件我们提供了一个完整的范例插件供您更方便快速的了解以上内容,请点击此处安装“微社区范例插件”[color=rgb(153, 153, 153) !important]更新时间:2014-7-16
|
|