利用腾讯云服务器进行微校开放平台开发

微校开放平台概述

腾讯微校是专注高校领域的公众号第三方平台,目前已接入公众号超过3万个,精准覆盖大学生超过2000万。通过微校开放平台,开发者可以轻松的直接向上千万大学生提供服务,公众号运营者也可以通过本文档来帮助拓展开发。

  • 微校开放平台主要用于指导开发者如何借助微校提供的开放能力对已授权腾讯微校的公众号提供服务能力。具体公众平台接口调用规范和标准,请参照微信公众平台开发者文档
  • 需要向运营者提供应用配置页的应用,应在运营者开启应用时,将页面链接返回微校(具体可参见应用开启请求说明),微校会以iframe的形式加载到应用管理页面,无应用配置页的应用,微校会直接展示默认应用管理页面。
  • 微校会为优秀的开发者提供一定奖励,同时,开发者也可以向微校申请技术优化指导、免费服务器等方面的支持。

服务器环境

腾讯云主机 Centos6.5 64bit (LAMP)

下面开始

1、登录微校开发平台,创建一个新的应用。

2、比如我们像上面那样,弄一个消息回复类应用。

3、填写相关信息,上传几张测试用图。

4、设置关键字 (我这里以“测试”为例,并且开启了模糊匹配)。

填写wxtestopen.php地址,填写测试平台的原始id (如果不知道,可以看后面)。

5、在填写完确认提交后,就可以看到上面这些信息,其中ApiKeyApiSecret下面要用。

6、如上图修改wxtestopen.php中的ApiSecret,修改wxtestapi.php中的ApiKeyApiSecret

7、修改完参数后,点击接口测试,如上图时就成功了。否则请检查你的参数是否修改,然后点击ApiSecret下面的应用测试地址,去开启应用。

8、如上图,依次点击开启应用和确认开启。

9、当看到如上图所示的时候,[1][2]都和我的一样,那么下面就可以去公众号测试了。下面我们去公众号掌上江大和RalphLuo测试。

至此,此次任务全部完成。下面讲解核心代码:

  1. open.php(用于来自微校的应用开启验证)核心代码如下: if ($cal_sign == $sign) { $interval = time() - $param_array['timestamp']; if ($interval >= 0 && $interval < 10) { $url = 'http://xxx.com/wxtest/wxtestapi.php';//响应地址 $token='wxtest'; //token设置 echo '{ "errcode":0, "errmsg":"", "token":"'.$token.'", "url":"'.$url.'", "config_url":"", "custom":{ "response_type":1, "response_data":[{ "title":"微校应用测试", "picurl":"" }] } }'; } }
  2. api.php【用于响应用户发送的关键字】核心代码如下 //接收文本消息 private function receiveText($object) { $media_id=$object->ToUserName;//公众号原始id $re=$this->getghname($media_id); $ghname=$re['name']; //公众号的名称 switch ($object->Content) { case "测试文字": $content = "这是个文本消息".$ghname; break; //其他的类似 default: $content = date("Y-m-d H:i:s",time())."\n技术支持 ".$ghname; break; } if(is_array($content)){ if (isset($content[0]['PicUrl'])){ $result = $this->transmitNews($object, $content); }else if (isset($content['MusicUrl'])){ $result = $this->transmitMusic($object, $content); } }else{ $result = $this->transmitText($object, $content); } return $result; }
  3. 微校获取公众号信息,签名算法等函数 function getghname($media_id){ //根据原始id(gh_id)获取公众号信息 ,返回的是数组 $apikey="xxx"; //应用apikey $api_secret = 'yyy'; //应用api_secret $time=time(); $noncestr=$this->createNonceStr(); $param_array=array( 'media_id'=>$media_id, 'api_key'=>$apikey, 'timestamp'=>$time, 'nonce_str'=>$noncestr, ); $sign=$this->cal_sign($param_array,$api_secret); $res=str_replace(array("(",")"),"",file_get_contents("http://weixiao.qq.com/common/get_media_infop?media_id=$media_id&api_key=$apikey&timestamp=$time&nonce_str=$noncestr&sign=$sign")); $re = json_decode($res,true); return $re; } function createNonceStr($length = 32) { //生成32位随机字符 $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; $str = ""; for ($i = 0; $i < $length; $i++) { $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1); } return $str; } function cal_sign($param_array,$api_secret) { //校验信息 $names = array_keys($param_array); sort($names, SORT_STRING); $item_array = array(); foreach ($names as $name) { $item_array[] = "{$name}={$param_array[$name]}"; } $str = implode('&', $item_array) . '&key=' . $api_secret; return strtoupper(md5($str)); }

在使用中,我们可以使用将公众号信息等数据存放到数据中,以便下次调用。 欢迎大家共同探讨!

相关推荐

如何利用腾讯云搭建个人网盘(Seafile)

如何在腾讯云上搭建一个PPT自动播放的服务器

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

助梦者的专栏

1 篇文章1 人订阅

我来说两句

2 条评论
登录 后参与评论

相关文章

来自专栏IMWeb前端团队

Nginx能为前端开发带来什么?

本文作者:IMWeb 黎腾 原文出处:IMWeb社区 未经同意,禁止转载 Nginx那么好,我想去看看。 接连逛了两个书城后,我发现并没有Nginx相...

2015
来自专栏Seebug漏洞平台

Xdebug 攻击面在 PhpStorm 上的现实利用

在调试 Drupal 远程命令执行漏洞(CVE-2018-7600 && CVE-2018-7602)时,存在一个超大的数组 $form 。在该数组中寻找到注入...

624
来自专栏木头编程 - moTzxx

moTzxx-CMS —— [一个基于PHP代码的后台管理系统]

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

833
来自专栏.Net移动开发

4.6预告先导篇——你们关心的几个问题:关于页、文档、内网推送等

非常感谢大家对Smobiler的支持,从4.6版本的建议征集中,整理了几个大家关注得比较多的问题,在此单独列出答复。

762
来自专栏沈唁志

WordPress评论时间显示为8小时前的解决方法

2564
来自专栏Android 开发者

Android 8.1 开发者预览版 —— 为 ML 机器学习做好准备的 Oreo 升级版

1844
来自专栏SEO

SEOer必学网站分析神器(二)

昨晚发布“SEOer必学网站分析神器(全新解析一)”后,突然发现,里面少讲了一点内容,在这里给大家补上。 移动适配:除了上次讲的一些内容外,还是可以加快移动端...

3046
来自专栏跟着阿笨一起玩NET

公开封尘已久的即时通讯源码

理论上功能是实现了,但是在NAT穿透上有问题,所以P2P有时不能成功,所以在外网,只是一个玩具而已

943
来自专栏AI科技大本营的专栏

​OpenAI开源机器人模拟Python库——高效处理并行模拟,GPU 加速自动 3D 渲染

作者 | Open AI 编译 | AI100(rgznai100) 今早,Open AI开源了一个高性能的 Python 库mujoco-py,主要用于使用M...

3376
来自专栏魏艾斯博客www.vpsss.net

搬瓦工升级降级套餐的方法及升降级后数据 IP 是否保留

1503

扫码关注云+社区