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

微校开放平台概述

腾讯微校是专注高校领域的公众号第三方平台,目前已接入公众号超过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 人订阅

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏phodal

Repractise架构篇一: CMS的重构与演进

重构系统是一项非常具有挑战性的事情。通常来说,在我们的系统是第二个系统的时候才需要重构,即这个系统本身已经很臃肿。我们花费了太量的时间在代码间的逻辑,开发新的功...

28911
来自专栏smartguys

(五):C++分布式实时应用框架——微服务架构的演进

版权声明:本文版权及所用技术归属smartguys团队所有,对于抄袭,非经同意转载等行为保留法律追究的权利!

3274
来自专栏python小白到大牛

Python终级教程!语音识别!大四学生实现语音识别技能!吊的不行

语音识别源于 20 世纪 50 年代早期在贝尔实验室所做的研究。早期语音识别系统仅能识别单个讲话者以及只有约十几个单词的词汇量。现代语音识别系统已经取得了很大进...

2612
来自专栏java一日一条

这十二行代码是如何让浏览器爆炸的?

今天刷推特的时候发现 Cyber Security@cyber__sec 的推文让人眼前一亮:

572
来自专栏沈唁志

GitHub代码托管平台提交代码时emoji表情的使用

1784
来自专栏Java后端生活

UUID

1614
来自专栏数据和云

云服务真的靠谱吗? AWS 用户中断31小时仅恢复6周数据

网络剪报服务商 - Instapaper 遭受了超过31小时的服务中断,而且他们声明还需要一个星期的数据库恢复时间。 Instapaper 是一个网络内容收藏站...

33212
来自专栏运维前线

阿里&百度&腾讯&facebook&Microsoft&Google开源项目汇总

BAT && YMFT Tencent GitHub地址:https://github.com/Tencent/tinker Tinker是Android的...

3208
来自专栏python开发者

Ubuntu Desktop安装及桌面美化(修复图片)

Ubuntu Desktop安装及桌面美化 1   开篇概述 本 系统的文章主要是讲互联网方向的开发主题。根据目前主流互联网公司的技术架构,Linux是必不可少...

4015
来自专栏竹清助手

为什么选择PHP作为后台语言

越来越多的企业使用PHP+MYSQL搭建网站,究竟PHP有什么好,为什么要选择用PHP? 1. 跨平台,性能优越,跟Linux/Unix结合别跟Windo...

963

扫码关注云+社区