前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用腾讯云服务器进行微校开放平台开发

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

作者头像
助梦者
修改2017-06-19 19:27:09
8.4K2
修改2017-06-19 19:27:09
举报
文章被收录于专栏:助梦者的专栏助梦者的专栏

微校开放平台概述

腾讯微校是专注高校领域的公众号第三方平台,目前已接入公众号超过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自动播放的服务器

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 微校开放平台概述
  • 服务器环境
  • 下面开始
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档