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

版权声明:本文由追梦者原创文章,转载请注明出处: 
文章原文链接:https://www.qcloud.com/community/article/225

来源:腾云阁 https://www.qcloud.com/community

微校开放平台概述

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

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

服务器环境

腾讯云主机 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));
    }
    

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

时间: 2024-10-25 15:33:26

利用腾讯云服务器进行微校开放平台开发的相关文章

腾讯云如何建站,利用腾讯云服务器建站流程介绍

腾讯云服务器买好之后,下一步我们就是建立自己的网站,对于一些小白用户来说,还不知道购买好腾讯云服务器之后,如何建立自己的网站,今天就介绍下利用腾讯云服务器建站流程: [腾讯云]云产品采购季,助力行业复工.1核2G云服务器,首年99元 https://cloud.tencent.com/act/cps/redirect?redirect=1053&cps_key=bc2a905407a3a1aaa9ff26fe9b78522f&from=console 首先我们登录腾讯云服务器控制台,可以通

关于腾讯云服务器使用FTP详细配置教程

1.腾讯云服务器介绍 2.关于腾讯云服务器使用感受 3.作为开发者使用过程中遇到的问题 4.腾讯云服务器FTP Server环境搭建 5.腾讯云常见FTP客户端安装方法及注意事项 首先非常感谢CSDN联合腾讯云提供的免费云资源,我是一个开发者,目前从事软件外包.教育培训相关工作.在技术方面还可以,但是在服务器管理方面还欠缺很多知识,所以遇到了一些问题,顺便花点时间研究下,把自己的心得分享给大家,供大家学习交流. 1.腾讯云服务器介绍 腾讯云(http://www.qcloud.com)-腾讯公司

腾讯云服务器1核2G秒杀价格99元1年 购买流程与技巧!

腾讯云云产品采购季活动自推出之后后,优惠政策更实惠,推出全新标准型S2实例,配置1核/12G/1M带宽/50G高效云盘,秒杀价格很亲民,1年仅需99元,活动已与02月14日正式开启,购买云服务器即享受1折资格. 直达官网云产品采购季购买:云产品采购季,助力行业复工.1核2G云服务器,首年99元 [腾讯云]云产品采购季,助力行业复工.1核2G云服务器,首年99元 https://cloud.tencent.com/act/cps/redirect?redirect=1053&cps_key=bc2

腾讯云服务器怎么样?腾讯云服务器详细测评

腾讯云服务器,简称 CVM 是通过高性能服务器虚拟化的云服务器.拥有专业团队打造资源隔离.数据安全.密码安全.安全加固等多达 20 种安全防护手段.其实就是和阿里云(ECS)差不多但技术不同的 VPS.以下我就用腾讯最低配带公网 IP 的这一套餐来评测一下吧(¥65/月)! 一.购买云服务器: 购买地址 ,下单后 2~3 分钟生成: 已经迫不及待了有木有呢?!接下来是小评测,跑分什么的. 二.硬盘读写.下载速度.跑分: 为了给大家一个全面的选择,准备了一些小数据给大家看.首先 CPU 使用的 E

腾讯云服务器初体验

腾讯云平台选购云服务器,我选购了suse10 64bit的系统,付款后大约2分钟提示已经分配完毕,根据IP和用户名密码登陆服务器. 第一步:初始用户是root,需要自己创建用户组和用户. groupadd -g 1000 zd useradd -g zd -s /bin/csh -d /home/zd -m -p z zd 详解一下命令 groupadd -g gid 指定用户组id,组id最小为501,0-999是系统保留组id,用户设id最好是从1000开始 -r 创建一个系统账户 -o 允

腾讯云服务器win2008系统搭建VPN

服务端:Windows server 2008 R2 客户端:Windows Xp3.windows 7.windows 8 以下是详细的配置步骤: 1在服务器管理中添加角色,进入添加向导页面,下一步 2选择[网络策略和访问服务],下一步,下一步 3选择[网络策略服务器].[路由和远程访问服务].[远程访问服务].[路由]选项,一直点击下一步 4正在安装 5安装成功 6配置并启用路由和远程访问 7进入装向导页面 8选择自定义配置,点击下一步 9选择"VPN访问",点击下一步,完成安装

【实践】腾讯云服务器发布项目

1.申请腾讯云服务器 申请地址:https://console.qcloud.com/cvm 参考教程:https://www.qcloud.com/doc/product/213 腾讯云论坛:http://bbs.qcloud.com/forum-44-1.html 2.安装jdk jdk下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html jdk安装,环境配置这个百度下就有了,这里就不阐述了. 3.To

利用腾讯云COS云对象存储定时远程备份网站

版权声明:本文由张戈 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/942851001487125915 来源:腾云阁 https://www.qcloud.com/community 一.优点分析 内网传输:和阿里云OSS一样,腾讯云COS同样支持内网和外网文件传输,对于腾讯云服务器,使用内网传输绝对是最快.最稳定的备份方案! 免费方案:看了下腾讯云COS的定价说明,发现对于备份网站来说简直是绝佳搭档,甚至可以说是钻

配置腾讯云服务器(CVM)出现的错误及解决方法

1.购买完腾讯云服务器之后需要首先配置web环境,因此找到以下网址,按照操作,安装了apache+php+mysql的web环境 http://www.qcloud.com/wiki/一键安装包使用指引 注意:最后一步验证的时候,区分大小写 2.之后数据库需要远程访问,因此需要为mysql数据库的root用户的host一项改为 % 3.在连接数据库的时候,出现了“SQLSTATE[HY000] [2013] Lost connection to MySQL server at 'reading