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

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
简介:

本节书摘来自华章出版社《微信公众平台开发最佳实践》一 书中的第2章,第2.1节,作者李骏 边思,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

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所示。

e6f110363ffdae3fe1dc3abb67e975dc235c38cd

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

31b432a00eaffe1164a30c9d5c45c5e360c0166d

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

658a6735743f1cce7acd38483fc7376edd4ca691

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

cc1706d1efae2b519e62b6ee331932c6bf16a3f8

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

2.1.2 创建新浪云应用

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

ebacaae0628c3bd5f4d13f3f558a6fb7b4813dd5

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

2f53834763ddf5063095c8b6e6ea88ac939022c1

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

4d844d346238ebcfe20e75a3e009eb48643a7312

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

a43e914acb3ddbe4057e7fe36a8a6a080cb682b1

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

2.1.3 创建应用版本

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

0483313e83a7ef5c0b9cf4e726cda43db5938d9e

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

cd2d590c386229cd51a20fc9a73de6e0d15aff2e

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

cc03e8b00b976a6d4f7e53b7522ba0ab62c6015f

至此,就成功创建了一个域名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中级认证
相关实践学习
1分钟部署经典小游戏
本场景介绍如何使用Serverless应用引擎SAE 1分钟快速部署经典小游戏。
SAE的功能与使用入门
欢迎来到《SAE的功能与使用入门》,本课程是“云原生Serverless Clouder认证“系列中的第三阶段。课程将向您介绍阿里云Serverless应用引擎(SAE)服务相关的概念、特性与使用方式。通过课程将带您逐步深入探索Serverless世界,借助SAE服务,即使没有丰富的云计算和IT经验,也能够让开发人员在实际业务场景中便捷的掌握如何构建和部署应用程序,快速拥抱Serverless架构,将精力聚焦在应用代码和业务逻辑的实现上。 学习完本课程后,您将能够: 掌握Serverless应用引擎(SAE)的基本概念与核心优势 了解Serverless应用引擎(SAE)的核心功能 掌握使用Serverless应用引擎(SAE)的开发和部署流程 了解Serverless应用引擎(SAE)的适用场景和最佳实践 &nbsp;
相关文章
|
6天前
|
人工智能 数据可视化 API
10 分钟构建 AI 客服并应用到网站、钉钉或微信中测试评
10 分钟构建 AI 客服并应用到网站、钉钉或微信中测试评
32 2
|
28天前
|
人工智能
10 分钟构建 AI 客服并应用到网站、钉钉或微信中简说
10 分钟构建 AI 客服并应用到网站、钉钉或微信
|
1天前
|
人工智能 运维 负载均衡
10 分钟构建 AI 客服并应用到网站、钉钉或微信中
《10分钟构建AI客服并应用到网站、钉钉或微信中》的解决方案通过详尽的文档和示例代码,使具有一定编程基础的用户能够快速上手,顺利完成AI客服集成。方案涵盖高可用性、负载均衡及定制化选项,满足生产环境需求。然而,若文档不清晰或存在信息缺失,则可能导致部署障碍。实际部署中可能遇到网络、权限等问题,需逐一排查。云产品的功能、性能及操作配置便捷性直接影响解决方案效果,详尽的产品手册有助于快速解决问题。总体而言,该方案在各方面表现出色,值得推荐。
|
1月前
|
人工智能 自然语言处理 Serverless
阿里云百炼应用实践系列-让微信公众号成为智能客服
本文主要介绍如何基于百炼平台快速在10分钟让您的微信公众号(订阅号)变成 AI 智能客服。我们基于百炼平台的能力,以官方帮助文档为参考,让您的微信公众号(订阅号)成 为AI 智能客服,以便全天候(7x24)回应客户咨询,提升用户体验,介绍了相关技术方案和主要代码,供开发者参考。
阿里云百炼应用实践系列-让微信公众号成为智能客服
|
28天前
|
存储 人工智能 API
阿里云百炼应用实践系列-10分钟在企业微信中集成一个 AI 助手
在阿里云平台上,您只需十分钟,无需任何编码,即可在企业微信上为您的组织集成一个具备大模型能力的AI助手。此助手可24小时响应用户咨询,解答各类问题,尤其擅长处理私域问题,从而成为您企业的专属助手,有效提升用户体验及业务竞争力。
|
1月前
|
监控 API 开发者
SAE的秘密武器:揭秘如何让您的应用瞬间飞跃至最新镜像,永远领跑部署竞赛!
【8月更文挑战第7天】在现代软件开发中,自动化部署至关重要。Serverless应用引擎(SAE)作为云原生服务,简化了无服务器应用的部署与管理。通过设置SAE应用更新策略为“总是使用最新镜像”,并集成CI/CD流程自动触发部署,确保应用运行最新版本。此外,优化部署参数及配置监控和日志服务也必不可少。利用SAE自动部署最新镜像不仅提升了开发效率,还增强了应用的稳定性和安全性。随着云计算的发展,SAE等服务将助力开发者更专注业务创新。
43 0
|
2月前
|
运维 监控 Serverless
Serverless 应用引擎使用问题之SAE怎么设置超时时间
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
3月前
|
缓存 运维 监控
Serverless 应用引擎产品使用合集之在使用函数计算 FC 部署 stable-diffusion 应用时,选了 tagger 扩展插件却拿不到提示词,还报错“Error”,是什么原因
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
3月前
|
运维 Kubernetes Java
Serverless 应用引擎产品使用合集之如何设置能让应用定时启停
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
3月前
|
关系型数据库 MySQL Serverless
Serverless 应用引擎产品使用合集之在SAE2.0上的应用如何访问云原生数据库PolarDB MySQL版集群
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。

热门文章

最新文章