《微信公众平台开发最佳实践》——2.1 新浪SAE应用

2.1 新浪SAE应用

Sina App Engine(以下简称SAE)是新浪研发中心于2009年8月开始内部开发,并在2009年11月3日正式推出第一个Alpha版本的国内首个公有云计算平台,SAE是新浪云计算战略的核心组成部分。
SAE作为国内的公有云计算,从开发伊始借鉴吸纳Google、Amazon等国外公司的公有云计算的成功技术经验,并很快推出不同于他们的具有自身特色的云计算平台。SAE选择在国内流行最广的Web开发语言PHP作为首选支持语言,Web开发者可以在Linux/Mac/Windows上通过SVN或者Web版在线代码编辑器进行开发、部署、调试,团队开发时还可以进行成员协作,不同的角色将对代码、项目拥有不同的权限;SAE提供了一系列分布式计算、存储服务供开发者使用,包括分布式文件存储、分布式数据库集群、分布式缓存、分布式定时服务等,这些服务将大大降低开发者的开发成本。同时SAE整体架构的高可靠性和新浪的品牌保证大大降低了开发者的运营风险。另外,作为典型的云计算,SAE采用“所付即所用,所付仅所用”的计费理念,通过日志和统计中心精确地计算每个应用的资源消耗(包括CPU、内存、磁盘等)。
总之,SAE就是简单高效的分布式Web服务开发、运行平台。

2.1.1 申请新浪云账号

SAE的注册地址为:sae.sina.com.cn/?m=user&a=reg,在浏览器中输入该网址,将自动跳转到“SAE新浪云计算平台”在新浪微博的应用授权界面,如图2-1所示。

如果你还没有新浪微博账号,需要新注册一个,注册新浪微博账号的过程本书就不再介绍了。在图2-1中填写新浪微博账号及密码之后,单击“登录”按钮,将跳转到授权确认页面,如图2-2所示。

单击“授权”按钮,跳转到SAE的用户注册页面,如图2-3所示。

填写真实姓名、安全邮箱、安全密码、确认密码、绑定手机及验证码之后,单击“下一步”按钮,将跳转到手机号验证页面,如图2-4所示。

填写手机收到的短信验证码后,单击“验证手机”按钮,将提示注册成功。
这样,我们成功注册了SAE的账号。

2.1.2 创建新浪云应用

使用注册成功的微博账号登录SAE,登录后界面如图2-5所示。

如图2-6所示,在最上方右侧的导航列表中,单击“我的应用”链接,再从下拉列表中选择“应用列表”链接,将跳转到“应用列表”页面。

单击页面中的“创建新应用”按钮,这时会弹出提示框,提示禁止放置违法违规内容,单击“继续创建”按钮,弹出创建应用页面,如图2-7所示。

在应用创建页面中,依次填写二级域名(App name)、应用名称、验证码,开发语言选择“PHP”,应用类型单击“PHP空应用”。如果二级域名(App name)已经被其他人注册过,会提示已经被占用,需要重新选择填入。填写完毕后,单击“创建应用”按钮,将提示创建成功,如图2-8所示。

应用创建成功之后,会自动跳转到应用列表,在应用列表中可以看到已经创建的应用。

2.1.3 创建应用版本

在应用列表中,单击刚才创建的应用cctv15将进入应用信息页面,如图2-9所示。

如图2-10所示,找到左侧目录下的“应用管理”,再单击下面的“代码管理”链接,将跳转到代码管理页面。

单击右侧的“创建一个版本”按钮,将弹出创建版本页面,如图2-11所示。
版本号默认为1,可以不用更改,直接单击“创建”按钮,这时会弹出安全密码输入框,正确输入安全密码之后,如图2-12所示。

至此,就成功创建了一个域名URL为cctv15.sinaapp.com/的SAE应用了。这个URL将会在后面用到。

2.1.4 上传微信接口代码

下述代码是一个可以启用微信接口的代码。

<?php
/*
    方倍工作室 http://www.fangbei.org/
    CopyRight 2013 www.doucube.com  All Rights Reserved
*/

define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
if (isset($_GET['echostr'])) {
    $wechatObj->valid();
}else{
    $wechatObj->responseMsg();
}

class wechatCallbackapiTest
{
    public function valid()
    {
        $echoStr = $_GET["echostr"];
        if($this->checkSignature()){
            echo $echoStr;
            exit;
        }
    }

    private function checkSignature()
    {
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];

        $token = TOKEN;
        $tmpArr = array($token, $timestamp, $nonce);
        sort($tmpArr);
        $tmpStr = implode( $tmpArr );
        $tmpStr = sha1( $tmpStr );

        if( $tmpStr == $signature ){
            return true;
        }else{
            return false;
        }
    }

    public function responseMsg()
    {
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

        if (!empty($postStr)){
            $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
            $fromUsername = $postObj->FromUserName;
            $toUsername = $postObj->ToUserName;
            $keyword = trim($postObj->Content);
            $time = time();
            $textTpl = "<xml>
                        <ToUserName><![CDATA[%s]]></ToUserName>
                        <FromUserName><![CDATA[%s]]></FromUserName>
                        <CreateTime>%s</CreateTime>
                        <MsgType><![CDATA[%s]]></MsgType>
                        <Content><![CDATA[%s]]></Content>
                        <FuncFlag>0</FuncFlag>
                        </xml>";
            if($keyword == "?" || $keyword == "?")
            {
                $msgType = "text";
                $content = date("Y-m-d H:i:s",time());
                $result = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $content);
                echo $result;
            }
        }else{
            echo "";
            exit;
        }
    }
}
?>```

将代码保存到文件index.php。请注意必须使用专业的开发软件来保存操作,例如Notepad++,不要使用Windows自带的记事本等,保存时需设置格式为“UTF-8无BOM格式”。图2-13是Notepad++的设置处。
然后使用压缩软件WinRAR将其压缩成ZIP格式,注意不能用RAR格式,因为SAE不支持RAR格式的文件上传,如图2-14所示。

<div style="text-align: center"><img src="https://yqfile.alicdn.com/a4cdac67dd73047c4b25e244811e88b6615add6e.png" width="" height="">
</div>

这样就会生成一个index.zip的压缩文件。
再回到我们之前创建的SAE应用的代码管理界面中,单击“操作”按钮,选择在下拉按钮中,再选择“上传代码包”按钮,如图2-15所示。

<div style="text-align: center"><img src="https://yqfile.alicdn.com/5ac830721c2f2ce0c4e028339020fd9f8bab236d.png" width="" height="">
</div>

选择上传代码包后,将弹出“代码上传”页面,单击“上传文件”按钮,选择刚才压缩好的index.zip文件,单击上传,上传成功后进度条的背景色为绿色,如图2-16所示。

<div style="text-align: center"><img src="https://yqfile.alicdn.com/053f052af98d697515aefc31cf9ab4565aa73c2a.png" width="" height="">
</div>

再次回到代码管理界面中,单击“编辑代码”按钮,如图2-17所示。

<div style="text-align: center"><img src="https://yqfile.alicdn.com/0d7bcfe19fcba3c1d2009c38516d21bec3fb9a2b.png" width="" height="">
</div>

在新的代码编辑页面中,我们可以看到index.php已经上传成功,双击该文件可以查看到源代码,如图2-18所示。

<div style="text-align: center"><img src="https://yqfile.alicdn.com/91db97ca8be9eef0ce6931eeea5d2c18384a37f2.png" width="" height="">
</div>

至此,新浪云应用的创建完成,并且成功上传了微信公众平台的接口文件。
####2.1.5 申请SAE中级认证
为了更好地利用云计算的资源,帮助更多开发者减轻服务器成本负担及推广微信公众平台的开发,新浪云SAE运营中心和方倍工作室进行合作,凡是购买了本书纸质版的读者(购买地址包括方倍工作室博客首页、各地新华书店及天猫、京东、当当、亚马逊等网上商城)在成功开发出一种微信公众平台的功能之后,可以申请新浪SAE中级认证,而无须达到SAE官网上要求的认证条件。在SAE审核通过之后即可获得新浪SAE的中级认证,每月可获得10?000云豆用于微信公众平台的运营(价值1200元/年)。所以,读者可以在学习完本书并开发出一个微信应用之后申请认证。
时间: 2024-10-30 09:40:20

《微信公众平台开发最佳实践》——2.1 新浪SAE应用的相关文章

微信公众平台开发最佳实践(第2版)

  <微信公众平台开发最佳实践 第2版>微信公众平台开发经典之作全新改版,精心挑选最经典的商业项目开发,成千上万人次微信公众平台开发者从中受益 方倍工作室已出版本书的第3版电子版,内容更多,价格更优惠,欢迎查看购买,地址:http://www.cnblogs.com/txw1958/p/buy-ebook.html       前言 出版说明 自从方倍工作室在博客园推出微信公众平台开发系列教程后,受到广大微信开发人员及爱好者的热情关注,相关文章的日访问量高达2万人次,而<微信公众平台开发

微信公众平台开发最佳实践

<微信公众平台开发最佳实践>共分10章,案例程序采用广泛流行的PHP.MySQL.XML.CSS.JavaScript.HTML5等程序语言及数据库实现.系统完整地介绍微信公众平台基础接口.自定义菜单.高级接口.微信支付.分享转发等所有相关技术,以生活类.娱乐类.企业类微信开发为切入点,讲解了30多个功能或应用案例. 前言 自从方倍工作室在博客园推出微信公众平台开发系列教程后,受到广大微信开发人员及爱好者的热情关注,相头文章的日访问量高达上万人次,而<微信公众平台开发入门教程>一门

《微信公众平台开发最佳实践》——导读

前 言 出版说明 自从方倍工作室在博客园推出微信公众平台开发系列教程后,受到广大微信开发人员及爱好者的热情关注,相关文章的日访问量高达2万人次,而<微信公众平台开发入门教程>的阅读量超过50万,博客访问量总计超过500万,成为微信公众平台开发更新最快,传播最广.受众最多.资料最全的博客,很多博文被许多有影响力的网站转载,并被各大搜索引擎收录且排名靠前,这些是我们始料未及的. 然而更让人高兴的是,很多开发者通过学习我们的教程掌握了微信公众平台开发技术,并且通过微信开发赚到了钱.2013年10月1

《微信公众平台开发最佳实践》——第3章 基 础 接 口 3.1 接收用户消息

第3章 基 础 接 口 基础接口是微信公众账号在申请后就默认拥有而不需要通过微信认证获得的接口.微信公众平台开发者中心启用之后,需要使用基础接口实现基本消息的接收与发送.基础接口包括三个主要的部分:接收用户消息,发送被动响应消息,接收事件推送消息.本章将介绍这三个部分是如何实现的. 3.1 接收用户消息 微信公众账号能够接收用户发送的六种格式的消息:文本(包括表情).图片.语音.视频.地理位置.链接.下面将分别介绍这六种消息. 3.1.1 文本消息 用户向微信公众账号发送文本消息的示例如图3-1

《微信公众平台开发最佳实践》—— 第1章 微信公众平台介绍 1.1 微信及其三大平台

第1章 微信公众平台介绍 微信自推出后,便如星火燎原之势发展,截至2014年7月,微信用户数已近8亿,月活跃用户接近4亿,公众账号达580万个,每日新增数为1.5万,是亚洲地区用户群体最大的移动端即时通信软件,同时也被公认为目前唯一拿到移动互联网门票的应用. 本章主要介绍微信公众平台的注册及使用. 1.1 微信及其三大平台 微信(英文名:WeChat)是腾讯公司于2011年年初推出的一款可以发送文字.表情.图片.语音.视频.位置.链接,并支持语音实时对讲的手机聊天软件.用户可以通过"添加QQ好友

《微信公众平台开发最佳实践》——2.4 本章小结

2.4 本章小结 本章首先介绍了如何申请新浪云SAE应用作为微信公众平台程序托管的服务器,然后介绍了配置及启用微信开发者中心的接口程序,最后介绍了使用微信调试器进行开发调试的方法.

《微信公众平台开发最佳实践》——2.3 微信开发调试工具

2.3 微信开发调试工具 2.3.1 微信调试器 微信调试器是方倍工作室开发的用于微信公众平台接口开发在线调试的工具,具有Token校验.模拟关注及取消关注.发送文本/图片/语音/视频/位置/链接.模拟事件发送等功能. 微信调试器运行时推荐使用Chrome浏览器或Firefox浏览器,以得到更好的兼容. 微信调试器的地址是debug.fangbei.org/,其界面如图2-27所示. 下面介绍微信调试器的使用方法. 1.?Token校验 在URL输入框和Token输入框中分别填写微信公众账号的接

《微信公众平台开发最佳实践》——2.2 微信开发者中心

2.2 微信开发者中心 2.2.1 配置和启用服务器 登录微信公众平台后台,微信公众平台地址:mp.weixin.qq.com,在左侧列表中最下方,找到"开发者中心",如图2-19所示. 单击进入开发者中心,可以看到当前有个服务器配置的信息,状态为未启用,如图2-20所示. 单击"修改配置"按钮,进入配置页面,如图2-21所示. 此处的URL为上一节中介绍的云应用的域名,即为cctv15.sinaapp.com,而Token在index.php中定义为weixin,

《微信公众平台开发最佳实践》—— 1.3 微信公众平台的使用

1.3 微信公众平台的使用 登录微信公众平台后,可以看到导航菜单.公众账号类型及名称等基本信息,如图1-16所示. 下面以微信公众账号"方倍工作室"为主要例子,介绍微信公众平台的各项菜单及使用. 1.3.1 功能 1.?群发功能群发功能是指微信公众平台最常用也最重要的功能之一.根据需要,运营人员填写文字(或图片/语音/视频/图文等,需要先上传素材)内容后,选择群发对象.性别.群发地区发送即可.获得微信支付权限的公众账号还能群发商品信息.群发功能界面如图1-17所示. 2.?自动回复在编