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

名廊网

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

打通版微社区接口

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

    [LV.1]初来乍到

    21

    主题

    24

    帖子

    253

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    253
    发表于 2016-2-23 19:18:37 | 显示全部楼层 |阅读模式
    打通版微社区接口
    目录

    接口概述
    打通版微社区接口由系统插件 “掌上论坛 1.3.6”版本及“微信登录 1.0.5” 版本提供,此接口我们通过插件形式向 Discuz! X2.5、Discuz! X3.x 版本提供,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)此方法可以删除指定插件所有注册的嵌入点
    参数参数含义
    $getplugin插件标识

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

    嵌入点列表
    嵌入点名称嵌入点ID返回值类型附加说明
    列表页
    边栏forumdisplay_sideBarstring
    主题底部forumdisplay_threadBottomarray(tid => HTML 内容, ...)只显示一个插件
    用户信息forumdisplay_authorInfoarray(uid => HTML 内容, ...)
    帖子风格模板forumdisplay_threadStyleTemplatearray(风格代号 => HTML 模板,...)HTML 模板可调用 Discuz! 微社区中的 artTemplate 语法,也可以通过自定义变量替换相应的内容(“帖子风格”嵌入点中的 var 参数)
    帖子风格forumdisplay_threadStylearray(
      tid => array(
        'id' => 风格代号,
        'var' => array(变量 => , ...)
      ),
      ...
    )
    风格代号建议用英文字母及数字组成,代号在“帖子风格模板”嵌入点中必须已定义。风格输出时替换模板中“{变量}”的内容为相应的值
    顶部区域forumdisplay_topBararray(
      array(
        'name' => 区块名称,
        'html' => HTML 内容,
        'more' => 更多链接(可选),
        'noheader' => 无顶部(1或0)
      )
      ...
    )
    区块名称建议不超过四个汉字。更多链接所指的页面如果是位于微社区的独立页面应用,请用 getPluginUrl 方法获取 URL 链接
    头部区域forumdisplay_headerBarstring只显示一个插件
    内容页
    边栏viewthread_sideBarstring
    帖子底部viewthread_postBottomarray(pid => HTML 内容, ...)只显示一个插件
    用户信息viewthread_authorInfoarray(uid => HTML 内容, ...)
    首帖内容上方viewthread_threadTopstring只显示一个插件
    首帖内容下方viewthread_threadBottomstring只显示一个插件
    顶部区域viewthread_topBarstring只显示一个插件
    个人中心
    用户信息profile_authorInfostring
    扩展信息profile_extraInfoarray(
      array(
        'name' => 名称,
        'value' => HTML 内容,
        'link' => 链接
      ),
      ...
    )
    每条扩展信息中 value 和 link 不能共存,当提供 value 参数时 link 参数失效
    全局
    全局变量module_variables可修改或者添加 JSON 变量中的内容,module为模块 ID(可参考 mobile 插件目录下 api/4/ 中的文件名)
    注意事项
    • 1、如果多个应用使用同一个嵌入点,部分嵌入点将优先显示第一个返回内容不为空的插件,请告知站长自行到“微信登录”的“接口”设置中调整接口显示顺序
    • 2、嵌入点如有更新时“掌上论坛”及“微信登录”无需更新,请直接更新您的插件即可
    • 3、微社区针对嵌入点中的 HTML 内容进行了过滤,不允许输出 <script> 等不安全的代码,开发时请注意

    嵌入点 JS 函数
    通常,在微社区嵌入点中输出的 HTML 里禁止存放 JS 相关代码。故此我们提供了以下微社区专属的 JS 函数:
    WSQ.ajaxget
    介绍: 通过 Ajax GET 方式请求插件脚本
    参数: array(URL 参数 , OUTPUT ID)
    URL 参数http://.../api/mobile/index.php?module=plugin&URL 参数,同 http://.../plugin.php&URL 参数,如等于“id=wsq_demo:get”,即 wsq_demo/get.inc.php 脚本。
    脚本中可把待输出的内容赋值到 $variable 变量中,并用 output() 函数输出 JSON 内容。也可以用 showmessage() 弹出 TIPS 信息(WSQ.tip 函数)。
    提醒:需要将“掌上论坛”插件升级到 1.4.1 版本才可正常使用此功能
    OUTPUT ID(可选)$variable 内容将输出到此 ID 中
    WSQ.ajaxpost
    介绍: 通过 Ajax POST 方式请求插件脚本
    参数: array(URL 参数, FORM ID, OUTPUT ID)
    URL 参数同 WSQ.ajaxget
    FORM ID表单的 ID
    OUTPUT ID(可选)$variable 内容将输出到此 ID 中
    WSQ.show
    介绍: 显示一个元素
    参数: array(HTML ID)
    HTML ID待显示的 HTML 标记
    WSQ.hide
    介绍: 隐藏一个元素
    参数: array(HTML ID)
    HTML ID待隐藏的 HTML 标记
    WSQ.tip
    介绍: 弹出一个 TIPS 信息
    参数: array(信息文本, 显示时长)
    信息文本显示在 TIPS 中的文本内容
    显示时长(可选)信息文本的显示时间长度,默认为 1000(1秒)
    WSQ.dialog
    介绍: 弹出一个对话框,对话框中包含“确定”和“取消”按钮
    参数: array('id' => '对话框 ID', 'content' => '信息文本', 'ok' => '确定按钮脚本', 'cancel' => '取消按钮脚本', 'mask' => '是否显示遮罩')
    对话框 ID对话框的 ID,请确保 ID 的唯一性
    信息文本显示在对话框中的文本内容
    确定按钮脚本点击确定按钮后执行的微社区 JS 脚本
    取消按钮脚本(可选)点击取消按钮后执行的微社区 JS 脚本
    是否显示遮罩(可选)是否显示遮罩,默认为 true
    WSQ.location
    介绍: 跳转一个页面
    参数: array(URL)
    URL待跳转页面的 URL

    微社区函数的声明
    微社区函数需要在 module_variables 嵌入点中进行声明,格式如下:function module_variables(&$variables) {        $variables['function'] = array(                '自定义函数名' => array('微社区 JS 函数', 函数参数),        );}
    自定义函数名微社区函数调用时将统一通过自定义函数名进行调用
    微社区 JS 函数上面公布的微社区函数
    函数参数上面公布的微社区函数的参数
    范例function forumdisplay_variables(&$variables) {        $variables['function'] = array(                'myajaxget' => array('WSQ.ajaxget', array('id=wsq_demo:get', 'demooutput')),        );}
    微社区函数的调用
    触摸点击事件:HTML 标记属性 click="自定义函数1();自定义函数2();..."
    <a click="myajaxget()">查看</a><span id="demooutput"></span>微社区 script 脚本:<wsqscript>自定义函数1();自定义函数2();</wsqscript><wsqscript>myajaxget();</wsqscript>函数参数中回调:$variables['function'] = array(        'mydialog' => array(                'WSQ.dialog',                array(                        'id' => 'dialog001',                        'content' => '您确定要报名?',                        'ok' => 'myajaxget()'                )        ),    );
    开发与测试
    为了有效的保护应用的版权,微社区上的应用只有真正下载、购买的站点才可显示,因此在开发微社区应用时你必须为自己的开发站点手动添加授权。
    如何开始设计 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.hideHeadBar()
    介绍: 隐藏顶栏。独立页面的 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);WSQ.login(obj) New!
    介绍: 微信下将跳转到帐号切换页面(因微信下通常会自动登录一个帐号),其他浏览器将跳转到帐号登录页面
    参数: obj = {pluginid:'插件标识', param: '参数'}
    范例var referer = {        pluginid: 'wsq_demo:a',        param: 'a=1&b=2'};WSQ.login(referer);
    范例插件我们提供了一个完整的范例插件供您更方便快速的了解以上内容,请点击此处安装“微社区应用开发范例

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

    [color=rgb(153, 153, 153) !important]更新时间:2014-12-04


    点评

    海!外直播 t.cn/RxmJTRS 禁闻视频 t.cn/Rxlbuea 据说赵国官员有三特色四守则。三特色:高举红色旗帜,收获灰色的利益,使用黑色社会手段。四守则:喝酒基本靠送,抽烟基本靠供,工资基本不动,老婆基本不用。  发表于 2018-2-25 10:05
    微信给打个赏呗
    回复

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2019-1-21 03:50 , Processed in 0.041357 second(s), 14 queries , Gzip On, Memcache On.

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

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