分类目录归档:教程

LeanCloud 与阿里云到底有什么区别?

LeanCloud-与阿里云到底有什么区别

不是很了解 LeanCloud(https://leancloud.cn)的开发者经常会问「LeanCloud 与已有的很多云服务有什么区别呢?」下面我们就以国内比较有代表性的阿里云为例,跟我们做下对比。

产品的区别

进入阿里云网站可以看到阿里云的产品介绍。产品列表有弹性计算、数据库、存储与 CDN、网络、大规模计算、云盾、管理与监控、应用服务、互联网中间件、移动服务、域名与网站等,每个选项下面又有非常多的子产品列表,提供的服务种类繁多。个人感觉几乎开发中需要使用的服务器产品,阿里云应该都提供了。这些产品更偏向于较底层的服务,用户要想使用起来需要具备一定的能力。

继续阅读

LeanCloud 安全性提醒

thumb-security-640x360

最近向我们反馈受到数据安全性方面恶意攻击的用户有增多的趋势。虽然 LeanCloud 提供了全面可靠的安全机制,但不少用户因为只关注了开发上的方便,没有足够重视安全性,以至于没有合理使用(有时甚至是没有使用)我们提供的安全机制,以至于给了攻击者可乘之机。我们在此特别提醒所有用户对自己应用的安全性进行检查,特别是:

  • 仔细阅读 LeanCloud 的 数据和安全 文档。
  • 全面检查 Class 和 Object 级别的 ACL 设置,确保只开放了实现应用功能所需的最低权限。
  • 如果对 _User 表没有特殊查询需求,请关闭查询权限,这不会影响注册和登录等操作。虽然 LeanCloud 对密码加密存储以确保不会泄漏,但仍然应该关闭查询权限以避免用户 email、电话号码等高价值信息被非法访问。
  • 对于特别敏感的数据,可以考虑关闭所有权限,使用 LeanEngine 提供有更多自定义限制的访问接口。

我们在近期也将推出安全检查工具,帮助用户自动发现应用设定中可能存在的风险,并在开发者后台做出改进让我们的安全机制更加易用。

如果您在这方面有任何疑问,欢迎在我们的 论坛 或工单系统提出。如果您受到数据安全性方面的威胁或者攻击而需要我们协助,可以发送邮件到 support@leancloud.rocks。

使用 LeanCloud 与 React Native 构建原生应用

reactnative_toptal_coverimage

图片来源:toptal

React Native 是 Facebook 在今年的 F8 大会上发布的移动应用开发方案。它基于 JavaScript 和 React,可以让 Web 应用开发者在保持原有的开发体验和效率的同时,为 Web 应用带来原生应用的体验。

React Native 使用 JavaScript 作为开发语言,其内建的打包系统支持包括 CommonJS 在内的多种模块化标准,因此很多支持浏览器运行环境的 Node Package 也可以运行在 React Native 中。LeanCloud JavaScript SDK 便是其一。

本文将介绍:

  • 如何在 React Native 中使用 Flux 架构来组织应用的数据流,以配合我们的 JavaScript SDK 向 LeanCloud 云端保存数据,重用代码和实现平台差异化。
  • 异步获取当前用户对象
  • 文件上传
  • 向移动端推送消息

继续阅读

「大概可能也许是」目前最好的 JavaScript 异步方案 async/await

构建一个应用程序总是会面对异步调用,不论是在 Web 前端界面,还是 Node.js 服务端都是如此,JavaScript 里面处理异步调用一直是非常恶心的一件事情。以前只能通过回调函数,后来渐渐又演化出来很多方案,最后 Promise 以简单、易用、兼容性好取胜,但是仍然有非常多的问题。其实 JavaScript 一直想在语言层面彻底解决这个问题,在 ES6 中就已经支持原生的 Promise,还引入了 Generator 函数,终于在 ES7 中决定支持 async 和 await。

async_image03

基本语法

async/await 究竟是怎么解决异步调用的写法呢?简单来说,就是将异步操作用同步的写法来写。先来看下最基本的语法(ES7 代码片段):

继续阅读

「轻松支付,只需几步」使用 LeanCloud 云代码接入支付宝示例

如果你的应用想接入支付宝,让用户可以在应用内部直接支付,你可以看下这篇文档和开源项目,也许会给你带来一些帮助。

项目:https://github.com/leancloud/cloud-code-alipay

了解支付宝「即时到账收款」

在尝试该项目之前,你需要了解支付宝「即时到账收款」这个功能:

  • 相关的介绍在这里: 即时到帐收款
  • 确认自己有「企业支付宝账号(不含个体工商户)」
  • 了解整个流程是什么样子的

然后就可以继续了。

安装

下载代码:

git clone git@github.com:leancloud/cloud-code-alipay.git

修改支付宝相关的配置 cloud/config/alipay.js

module.exports = {
  sign_type: 'MD5',
  alipay_gateway: 'https://mapi.alipay.com/gateway.do?',
  https_verify_url: 'https://mapi.alipay.com/gateway.do?service=notify_verify&',
  partner: '2088000000000000',
  key: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
  notify_url: 'http://xxx.avosapps.com/pay/notify',
  return_url: 'http://xxx.avosapps.com/pay/return'
}
  • alipay_gateway: 支付宝网关,一般情况默认即可。
  • https_verify_url: 支付宝回调验证 url,一般情况默认即可。
  • partner: 合作者身份(PID),2088 开头的 16 位数字,可以在支付宝网站查找: https://b.alipay.com/order/pidAndKey.htm
  • key: 安全校验码,数字加字幕的字符串,可以在支付宝网站查找: https://b.alipay.com/order/pidAndKey.htm
  • notify_url: 支付宝异步通知 url,二级域名根据 LeanCloud 云代码配置而定。
  • return_url: 支付宝同步通知 url,二级域名根据 LeanCloud 云代码配置而定。

部署

配置 LeanCloud appId 和 appKey

avoscloud app add <projectName> <appId>

切换目标应用

avoscloud checkou <projectName>

部署应用到测试环境和生产环境

avoscloud deploy && avoslcoud publish

提示 : 过程中可能会提示输入 masterKey。

如果没有错误,请打开浏览器,根据自己的二级域名键入网址:

http://<yourPath>.avosapps.com

如果看到「支付宝即时到账交易接口」的页面,恭喜你,部署成功!

感受一下

  1. 在「支付宝即时到账交易接口」的测试页面,输入相关信息。 注意 :「卖家支付宝账户」需要和「partner」对应;金额可以输入 0.01 (表示支付 1 分钱) 来进行尝试。输入完成后点击确认。
  2. 你将看到跳转到支付宝页面,输入自己的支付宝账号和支付密码等完成支付。
  3. 支付完成后会跳转回我们自己的应用页面,并显示 验证结果:true。支付流程结束。当然,你的 1 分钱也转到了对应的卖家账户 ;)

开发相关

文件说明

  • cloud/app.js: 支付宝相关请求路由。
  • cloud/alipay.js: 支付宝相关签名验证,生成跳转等逻辑。

路由信息

  • GET /: 静态首页 public/index.html
  • POST /pay: 接受表单信息、签名,并准备跳转到支付宝。
  • GET /pay/return: 等待支付宝同步回调,并验证调用方是否真正来自支付宝。
  • POST /pay/notify: 等待支付宝异步回调,并验证调用方是否真正来自支付宝。

更 lean 更便捷,云代码「精益模式」上线

很多用户使用 Cloud Code 云代码 是为了在服务端提供一些个性化的方法供各终端调用,而不希望关心诸如代码托管、npm 依赖管理等问题。为此我们提供了在线维护 Cloud Code 的功能。

提醒

使用此功能,你需要注意:

  • 会替代您之前 git 或者命令行部署的项目。
  • 暂不提供 Web hosting 功能。
  • 维护的所有函数可以生成并导出一个完整的项目,供 git 或命令行部署(即将推出)。
  • 之前由项目维护的云代码方法并不会显示在此处,可以认为「定义函数」和使用项目维护的云代码是两套代码。具体使用什么代码,是由最后一次部署使用什么功能决定(「定义函数」的每一个添加、修改、发布、删除动作都是一个部署动作)。

cloud_code_snippet

左上角的「创建函数」可以新创建一个函数。中间部分是已经创建好的函数,并可以进行一些维护操作。

函数类型

有几种函数类型:

  • Function:对应 AV.Cloud.define 定义的方法。
  • Hook:对应 AV.Cloud.beforeSave 等回调定义的方法。
  • Global:对应全局变量,一些全局变量和公共函数可以定义在这里。

这些函数的使用场景和具体细节,参见:Cloud 函数

创建函数

如果需要创建一个新的函数,可以点击「创建函数」按钮,您将看到如下窗口:

cloud_code_snippet_create

您需要设置的部分包括:

  • 函数类型
  • 函数名称
  • 数据具体的代码片段(注意,你不需要输入函数定义部分,即 AV.Cloud.define(...) 部分)
  • 注释
  • 全部 OK 后点击「保存」,或者放弃编辑点击「关闭」

您可以在代码框中填入下列代码:

var name = request.params.name;
if (name) {
    response.success('Hello ' + name);
} else {
    response.error('name?')
}

点击保存后,Cloud Code 会在后台编译、保存,并将代码部署到「测试环境」,这个过程可能需要十几秒钟的时间,请耐心等待。全部完成后,页面上方会提示「已更新到测试环境」;如果有错误(比如编译错误)则会出现类似提示: 加载代码出错: SyntaxError: Unexpected token )

发布

如果函数部署「测试环境」成功,就可以点击「发布」按钮将函数发布到「生产环境」。同样该过程可能需要十几秒钟的时间,请耐心等待。全部完成后,页面上方会提示「已发布到生产环境」。

同步

对于某个函数,可能生产环境运行一个版本,而测试环境正在开发一个新的版本,两个环境的代码是不一致的,这时函数列表页面相关函数的「测试环境」按钮会变成蓝色:

cloud_code_snippet_diff_version

当您在测试环境开发完成,点击「发布」后,两个环境的代码将会统一,这时「测试环境」按钮变为灰色。

测试

如果需要测试,可以点击相应函数的「调用」按钮,你将看到如下窗口:

cloud_code_snippet_invoke

选择调用环境,并输入调用参数,点击「运行」按钮即可看到调用结果。如果调用返回的 Http Status Code 不是 200,则页面上方会提示相关错误信息。

历史版本

如果您想看某个函数之前曾经部署过的代码,可以在函数列表页面点击「历史」按钮,将会弹出类似下面的窗口:

cloud_code_snippet_history

您可以点击时间来查看不同时间部署的代码。

删除

如果您确定某个函数已经不再需要,可以在函数列表页面点击「删除」按钮将其删除。 注意 :删除后该函数和其所有历史记录都将被删除,而且不能恢复。删除动作会重新部署测试和生产环境,这个过程可能需要十几秒钟的时间,请耐心等待。

LeanMessage for Windows Phone 8 已上架 Nuget

LeanMessage for Windows Phone 8 已上架 Nuget

LeanMessage 是 LeanCloud 开发的 Realtime Message 实时通信组件,目的就是服务于手机应用开发者,在应用中实现实时聊天功能的组件,目前在 iOS 以及 Android 上已经有很多开发者采用了 LeanMessage 作为 Realtime Message 实时通信功能作为解决方案。如此受欢迎也说明实时通信在微信,Line 等大型产品的推进下,实时通信已经成为很多手机应用必不可少的功能,当开发者还在犹豫是采用 Jetty 还是 SignalR 作为 WebSocket 服务端的解决方案时,LeanMessage 给了您一个更稳定的选择:放着我来!

今年年中的时候,我们陆续发布了 iOS 以及 Android 版本中都支持了 LeanMessage 组件,详细文档可以查阅:LeanMessage 服务开发指南

回到本文的主题,随着微软的持续加大移动市场的研发力量,Windows Phone 也占有市场的一席之地,我们也紧跟着推出了 Windows Phone 8.0 的实时通信的 SDK,现在已经在 Nuget 上架公测,欢迎开发者使用并且提出各种意见以及 Bug 回馈,我们会持续更新和完善。
文档也集成在 LeanMessage 服务开发指南