请选择 进入手机版 | 继续访问电脑版

名廊网

 找回密码
 立即注册
QQ登录
搜索
热搜: 活动 交友 discuz
查看: 1394|回复: 2

Discuz! 开放平台正式开放打通版微社区开发接口

[复制链接]
  • TA的每日心情
    开心
    2016-5-19 00:19
  • 签到天数: 1 天

    [LV.1]初来乍到

    21

    主题

    24

    帖子

    253

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    253
    发表于 2016-2-19 01:32:00 | 显示全部楼层 |阅读模式
    1. 接口概述

    2. 打通版微社区接口由系统插件 “掌上论坛 1.3.6”版本及“微信登录 1.0.5” 版本提供,此接口我们通过插件形式向 Discuz! X2.5、Discuz! X3.x 版本提供,Discuz! 新版将内置此接口。通过此接口,您可以让你的插件接入打通版微社区,使您的应用通过微社区在微信中成为推广、营销、增强互动等各方面利器。

    3. 同时,微社区上的应用均经过了正版验证,通过非法渠道安装的应用不会在微社区中显示。

    4. 这 2 个插件已允许被其他插件合并安装,开发者可在插件的版本设置中设置合并安装“mobile.plugin.25962”和“wechat.plugin.35632”即可。

    5. 调用本接口前您需要在插件中引用接口文件

    6. require_once DISCUZ_ROOT . './source/plugin/wechat/wechat.lib.class.php';

    7. 嵌入点接口
    8. 嵌入点接口用于把您开发的插件方法或数据注册到微信接口中

    9. 注册嵌入点

    10. WeChatHook::updateAPIHook($data)

    11. 此方法可以将一个方法注册到微社区嵌入点上 $data 格式:

    12. array(
    13.   嵌入点ID => 参数
    14. )

    15. $data 参数包含以下内容
    16. KEY        含义
    17. plugin        插件标识
    18. include        含有待注册方法的文件,此文件应位于您所注册的插件的目录下
    19. class        待注册方法的类名
    20. method        待注册方法名
    21. include、class、method 留空表示删除已注册的嵌入点
    22. 范例

    23. $data = array(
    24.         array('forumdisplay_variables' => array(
    25.                 'plugin' => 'wechat',
    26.                 'include' => 'wsqapi.class.php',
    27.                 'class' => 'WSQAPI',
    28.                 'method' => 'forumdisplay_variables'
    29.         )),
    30.         array('viewthread_variables' => array(
    31.                 'plugin' => 'wechat',
    32.                 'include' => 'wsqapi.class.php',
    33.                 'class' => 'WSQAPI',
    34.                 'method' => 'viewthread_variables'
    35.         )),
    36. );
    37. WeChatHook::updateAPIHook($data);

    38. 嵌入点ID 详见下面的《嵌入点列表》

    39. 获取嵌入点

    40. WeChatHook::getAPIHook($getplugin = '')

    41. 此方法可以获取已注册的嵌入点
    42. 参数         参数含义
    43. $getplugin         插件标识,留空表示获取所有内容

    44. 删除嵌入点

    45. WeChatHook::delAPIHook($getplugin)

    46. 此方法可以删除指定插件所有注册的嵌入点
    47. 参数         参数含义
    48. $getplugin         插件标识

    49. 获取独立页面应用的 URL 地址

    50. WeChatHook::getPluginUrl($pluginid, $param = array())

    51. 此方法可以返回在微社区中独立页面应用的 URL 地址
    52. 参数         参数含义
    53. $pluginid         插件标识,同 plugin.php 下的 id 参数
    54. 可附加“:”后缀用以调用指定的模块,如“test:show”则调用“test/show.inc.php”文件
    55. $param         此页面所包含的 GET 参数数组

    56. 嵌入点列表

    57. 嵌入点名称         嵌入点ID         返回值类型         附加说明
    58. 列表页
    59. 边栏         forumdisplay_sideBar         string         
    60. 主题底部         forumdisplay_threadBottom         array(tid => HTML 内容, ...)         只显示一个插件
    61. 用户信息         forumdisplay_authorInfo         array(uid => HTML 内容, ...)         
    62. 帖子风格模板         forumdisplay_threadStyleTemplate         array(风格代号 => HTML 模板,...)         HTML 模板可调用 Discuz! 微社区中的 artTemplate 语法,也可以通过自定义变量替换相应的内容(“帖子风格”嵌入点中的 var 参数)
    63. 帖子风格         forumdisplay_threadStyle         array(
    64.   tid => array(
    65.     'id' => 风格代号,
    66.     'var' => array(变量 => 值, ...)
    67.   ),
    68.   ...
    69. )         风格代号建议用英文字母及数字组成,代号在“帖子风格模板”嵌入点中必须已定义。风格输出时替换模板中“{变量}”的内容为相应的值
    70. 顶部区域         forumdisplay_topBar         array(
    71.   array(
    72.     'name' => 区块名称,
    73.     'html' => HTML 内容,
    74.     'more' => 更多链接(可选)
    75.   ),
    76.   ...
    77. )         区块名称建议不超过四个汉字。更多链接所指的页面如果是位于微社区的独立页面应用,请用 getPluginUrl 方法获取 URL 链接
    78. 头部区域         forumdisplay_headerBar         string         只显示一个插件
    79. 内容页
    80. 边栏         viewthread_sideBar         string         
    81. 帖子底部         viewthread_postBottom         array(pid => HTML 内容, ...)         只显示一个插件
    82. 用户信息         viewthread_authorInfo         array(uid => HTML 内容, ...)         
    83. 首帖内容上方         viewthread_threadTop         string         只显示一个插件
    84. 首帖内容下方         viewthread_threadBottom         string         只显示一个插件
    85. 顶部区域         viewthread_topBar         string         只显示一个插件
    86. 个人中心
    87. 用户信息         profile_authorInfo         string         
    88. 扩展信息         profile_extraInfo         array(
    89.   array(
    90.     'name' => 名称,
    91.     'value' => HTML 内容,
    92.     'link' => 链接
    93.   ),
    94.   ...
    95. )         每条扩展信息中 value 和 link 不能共存,当提供 value 参数时 link 参数失效
    96. 注意事项

    97.     1、如果多个应用使用同一个嵌入点,部分嵌入点将优先显示第一个返回内容不为空的插件,请告知站长自行到“微信登录”的“接口”设置中调整接口显示顺序
    98.     2、嵌入点如有更新时“掌上论坛”及“微信登录”无需更新,请直接更新您的插件即可
    99.     3、微社区针对嵌入点中的 HTML 内容进行了过滤,不允许输出 <script> 等不安全的代码,开发时请注意


    100. 开发与测试

    101. 为了有效的保护应用的版权,微社区上的应用只有真正下载、购买的站点才可显示,因此在开发微社区应用时你必须为自己的开发站点手动添加授权。

    102. 如何开始设计 Discuz! 版微社区?

    103.     1、在“应用管理”菜单选择“发布应用”,选择“插件”,填写相关资料
    104.     2、进入“添加版本”步骤,填写相关资料,无需上传文件包,点击“提交”按钮
    105.     3、选择“统计记录”中的“安装记录”,选择您刚才创建的版本,点击下方的“[添加授权]”链接
    106.     4、填写您的开发站点的 URL 和 网站 ID,如看到“授权微社区访问”请勾选
    107.     5、如您的开发站点已成功开通了 Discuz! 微社区,可在“微信登录”插件的“微社区设置”中看到您的微社区的 URL。建议在 Chrome 浏览器开发模式的 Emulation 模式下模拟手机访问此 URL
    108.     6、开始开发您的第一个 Discuz! 版微社区插件


    109. 独立页面应用

    110. 独立页面应用可让指定的应用实现帐号的自动登录,并可自定义底栏。独立页面应用的 URL 链接地址必须通过 getPluginUrl 方法获得,获得后的地址,您可以输出到相应的嵌入点里或者添加到微信公众号的菜单中
    111. 在顶部区域添加独立页面入口的范例

    112. function forumdisplay_topBar() {
    113.         require_once DISCUZ_ROOT.'./source/plugin/wechat/wechat.lib.class.php';
    114.         $return = array();
    115.         $return[] = array(
    116.                 'name' => 'TopBar1',
    117.                 'html' => '[authorInfo/TopBar1]',
    118.                 'more' => WeChatHook::getPluginUrl('wsq_demo:view', array('a' => 1, 'b' => 2)),
    119.         );
    120.         return $return;
    121. }

    122. 上面的独立页面 URL 将跳转到 plugin.php?id=wsq_demo:view&a=1&b=2 页面中,即 wsq_demo/view.inc.php 脚本

    123. 在微社区的独立页面中,我们提供了一套 openJS 供您调用,首先在的网页中先引入 openJs

    124. <script type="text/javascript" src="http://wsq.discuz.qq.com/cdn/discuz/js/openjs.js"></script>

    125. WSQ.initPlugin(obj)

    126. 介绍: 插件初始化,将名称显示在顶栏

    127. 参数: obj = {name:插件名称}
    128. 范例

    129. WSQ.initPlugin({name:'测试插件'});

    130. WSQ.initBtmBar(array)

    131. 介绍: 初始化底栏

    132. 参数: array[{name:'菜单名称1', pluginid:'插件标识1', param:'参数1'}, {name:'菜单名称2', pluginid:'插件标识2', param:'参数2'}, ...]

    133. name: 菜单名称

    134. pluginid: 插件标识,同 plugin.php 下的 id 参数,可附加“:”后缀用以调用指定的模块,如“test:show”则调用“test/show.inc.php”文件

    135. param: 此页面所包含的 GET 参数数组 http_build_query 后的字串
    136. 范例

    137. var menu = new Array();
    138. menu.push({name:"menu1", pluginid: 'wsq_demo:a', param: 'a=1&b=2' });
    139. menu.push({name:"menu2", pluginid: 'wsq_demo' });
    140. WSQ.initBtmBar(menu);

    141. WSQ.showBtmBar()

    142. 介绍: 显示底栏,显示前请先初始化底栏

    143. WSQ.hideBtmBar()

    144. 介绍: 隐藏底栏

    145. WSQ.showHeadBar()

    146. 介绍: 显示顶栏

    147. WSQ.showHeadBar()

    148. 介绍: 隐藏顶栏。独立页面的 GET 中添加 _hd 参数可默认隐藏顶栏

    149. WSQ.initShareWx(obj)

    150. 介绍: 初始化微信分享参数

    151. 参数: obj = {img:'图片地址', desc:'介绍', title:'标题', pluginid:'插件标识', param: '参数'}
    152. 范例

    153. var opts = {
    154.         img: 'http://www.discuz.net/static/image/common/logo.png',
    155.         desc: '插件页面分享时候的描述',
    156.         title: '插件页面要分享的标题',
    157.         pluginid: 'wsq_demo:a',
    158.         param: 'a=1&b=2'
    159. };
    160. WSQ.initShareWx(opts);

    161. WSQ.login(obj) (尚未发布)

    162. 介绍: 微信下将跳转到帐号切换页面(因微信下通常会自动登录一个帐号),其他浏览器将跳转到帐号登录页面

    163. 参数: obj = {pluginid:'插件标识', param: '参数'}
    164. 范例

    165. var referer = {
    166.         pluginid: 'wsq_demo:a',
    167.         param: 'a=1&b=2'
    168. };
    169. WSQ.login(referer);


    170. 范例插件
    171. 我们提供了一个完整的范例插件供您更方便快速的了解以上内容,请点击此处安装“微社区应用开发范例”

    172. 常见问题
    173. Q:为何微社区插件安装后无法在微社区中显示?
    174. 分以下两种情况:
    175.   1、开发中的应用,请参考“开发与测试”中的步骤进行。
    176.   2、已发布的应用,首先请确认站点是否正常开通了微社区。如果已开通微社区,那么是由于当时站点开通微社区时使用的站点ID和安装插件时使用的站点ID不同导致的,可进入“微信登录”插件的“微社区设置”处直接点击下面的保存同步下新的站点ID。
    复制代码


    点评

    海!外直播 t.cn/RxmJTRa 禁闻视频 t.cn/RJvO78K 人们都说CCTV只有一句话是真实的:现在是北京时间7点整;但那时段的广告却最贵?据说厂家都知道:爱看《新闻联播》的人最容易受骗。呵呵,不如看这个..  发表于 2018-2-25 10:03
    微信给打个赏呗
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|名廊网 ( 冀ICP备12024006号-2 )

    GMT+8, 2019-1-21 03:00 , Processed in 0.055099 second(s), 19 queries , Gzip On, Memcache On.

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表