专栏首页助梦者的专栏利用腾讯云服务器进行微校开放平台开发
原创

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

微校开放平台概述

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux安全: iptables端口转发

    # iptables -t nat -A PREROUTING -p tcp --dport 2201 -j DNAT --to-destination 10....

    heidsoft
  • 经典 | 10 分钟速成 Python3

    Python 是由吉多·范罗苏姆(Guido Van Rossum)在 90 年代早期设计。 它是如今最常用的编程语言之一。它的语法简洁且优美,几乎就是可执行的...

    1480
  • 干货 | 7 步快速入门 Python3

    Python 是由吉多·范罗苏姆(Guido Van Rossum)在 90 年代早期设计。 它是如今最常用的编程语言之一。它的语法简洁且优美,几乎就是可执行的...

    用户2769421
  • iOS逆向工程之Theos

    如果你对iOS逆向工程有所了解,那么你对Tweak并不陌生。那么由Tweak我们又会引出Theos, 那么什么是Theos呢,简单一句话,Theos是一个越狱开...

    lizelu
  • Windows下 gcc/g++的安装与配置

    打开链接:https://osdn.net/projects/mingw/downloads/68260/mingw-get-setup.exe/

    对弈
  • [译]使用 Riot,ES6 和 Webpack 构建应用

    在读完 Muut 上 Frameworkless JavaScript 这篇博文后,我遇上了 Riot,请一定先阅读该博文!Muut 的程序员拿出实际行动编写了...

    逆葵
  • 解决安装Samba时浏览器打开不成功

    你好我是森林
  • 文本编辑利器Notepad++ 10个强大而又鲜为人知的特性

    Notepad++ 顾名思义就是 windows 内置 Notepad 的增强版,它采用 C++ 编写,性能优秀,不仅小巧(完整安装包仅 3.8MB),功能众多...

    用户1177713
  • 移动设备(手机)的唯一ID详解

    平台支持:Android - 2.2+ (支持): 与设备的imei号一致。注意:如果无法获取设备imei则使用设备wifi的mac地址,如果无法获取设备mac...

    php007
  • Java 微服务从源码实战开始 | 码云周刊第 49 期

    在软件开发的不同时期、阶段,对技术架构的理解、选择和应用都有着不一样的诉求。微服务架构是当前互联网业界的一个技术热点,它的思想也更符合我们的目标: 根据业务模块...

    码云Gitee

扫码关注云+社区

领取腾讯云代金券