月度归档:2014年09月

CQL 使用简介——使用 SQL 查询数据

本周我们正式推出了 Cloud Query Language,可以使用类似 SQL 的语法来查询 AVOS Cloud 平台上的应用数据。

一个简单的例子,比如在 iOS 里,如果您使用最新的 v2.6.5 版本 SDK,就可以像下面这个例子那样来查询:

    NSString *cql = [NSString stringWithFormat:@"select * from %@", @"GameScore"];
    AVCloudQueryResult *result = [AVQuery doCloudQueryWithCQL:cql];
    NSLog(@"results:%@", result.results);

CQL 是目前只能用于查询数据,设计成类似 SQL 的语法,以下都是合法的 CQL 语句:

//查询一张表的最多 100 条数据
select * from GameScore

//查询表的记录总数
select count(*) from GameScore

//查询结果只包含 name,score 以及内置字段 (objectId,createdAt 等)
select name,score from GameScore

//根据 name 查找
select * from GameScore where name='dennis'

//根据 name 和 score 同时查找
select * from GameScore where name is exists and score > 80 and score <= 100

//分页查找,从第 100 条开始向后查找 10 条数据
select * from GameScore limit 100,10

//根据 score 和 name 排序
select * from GameScore order by score,+name desc

还可以查询符合条件的记录数目:

select count(*) from GameScore where score>60 and score<=80

我们还支持子查询,比如查询玩家信息,并且成绩大于 80 分的::

select * from Player where name in (select name from GameScore where score>80)

我们还可以通过 CQL 查询地理位置信息:

select * from Player where location near [30.0, -20.0]

更多复杂查询的例子请参考 Cloud Query Language 详细指南

Android SDK v2.6.5 版本 SDK 也开始支持,简单例子如下:

AVQuery.doCloudQueryInBackground("select * from ObjectTest",new CloudQueryCallback<AVCloudQueryResult>(){

          @Override
          public void done(AVCloudQueryResult result, AVException cqlException) {
             if(cqlException==null){
             result.getResults();//这里是你查询到的结果
             }
          }

});

2014 年 9 月份下旬更新汇总

在国庆到来之前,给尊敬的开发者说一声国庆快乐,又到吃喝玩乐时间,说错,是又到更新报告时间。

在国庆之前,我们发布本月的最后一次 SDK 更新, Android 和 iOS SDK 都发布了 2.6.5 版本 ,WindowsPhone SDK 发布了 1.2.1 版本,除了常规的 Bug Fix 之外,主要是发布了 Cloud Query 查询功能,您可以使用类似 SQL 的语法 来查询应用的数据库,详细信息参考 Cloud Query Language 详细指南 ;其次是 WindowsPhone SDK 开始支持推送功能,具体也请看 开发指南

我们还发布了 C++ SDK 的第一个版本并将源码开放,欢迎围观并使用 https://github.com/avoscloud/cpp-sdk

网站方面,我们为短信设置添加了一个新功能,可以在应用设置的应用选项菜单,为短信测试添加 4 个以内的手机号码,这些手机号码将不受短信每日发送的流量限制,方便开发者调试。此外,我们还为发送的短信添加了应用签名,使用的是您在应用设置里的应用名称。

详细更新日志如下。

网站和服务

  • 发布 Cloud Query 功能,CQL 详细信息参考 Cloud Query Language 详细指南
  • 应用选项菜单添加短信测试号码设置
  • 短信添加应用签名。
  • 增加 WindowsPhone 推送支持
  • API 服务的部分小改进:列删除黑名单、Pointer 类型验证改进等。

iOS SDK v2.6.5

  • 修复同时下载同一个文件数据可能损坏的问题
  • 修复 iOS 8 下无法获取地理位置的问题
  • 修复新建的 AVGroup 未设置 delegate 的问题
  • 实时消息添加北美节点支持
  • 添加 Cloud Query API,并增加 开发指南文档
  • 修正大文件上传经常失败的问题
  • 实时消息 websocket 当设备网络状态改变时重连时间间隔重置
  • 修复 QQ 登录过程中 SSL 错误问题
  • 修复 SNS 模块在 Xcode 6 出现警告的问题

Android SDK v2.6.5

  • 增加了 CloudQuery 支持,并增加 开发指南文档
  • 增加了 AVObject.getList() 中的子类化支持
  • 修正了在 AVObject 中的 JSON 对象内包含 objectId 对象时出现的异常

WindowsPhone SDK v1.2.1

中国移动运营商网络问题的诊断和投诉

更新 1
由于切换到了 BGP 网络,服务器的 IP 地址已变更,请以新的 IP 地址为准,文章中的 IP 地址已经无法连通。
更新 2
切换到了 api.leancloud.cn 域名,我们用户的 DNS 问题已经大大的减少了。


偶尔会有开发者和用户反应在移动网络(4G/3G/EDGE)下,存在无法使用我们服务的情况,表现为应用加载数据失败,无法访问 https://cn.avoscloud.com 网站等。依我们的经验,这里的问题基本是由网络问题引起的,并且都是在中国移动的网络下,中国电和中国联通都没有遇到。这里写一下,如果出现这种情况,应该如何确定问题出在哪儿。请注意,以下的网络除无线网络是指 WiFi 网络外,均为中国移动的数据网络(iOS 里称蜂窝移动数据)和有线宽带网络(就是那个最近很便宜的,一天一块钱的宽带)。

对于开发者:请访问 https://status.avoscloud.com,确认我们各项服务的状态。
如果想确认数据是否正常,请登录 https://cn.avoscloud.com 的控制台查看。
如果都正常,请接着往下走,确认一下网络是否有异常。

对于用户:首先,如果是在无线网络条件下,请排除本地网络的问题,直接在设备(iOS/Android/Windows 或别的平台)上访问一下不太可能出问题的网站,如打开浏览器访问 www.baidu.com,看看能否成功。

排除本地网络问题后,请按以下方法诊断,需要先在设备上安装相应的检查应用
* iOS 用户推荐 iNetTools
* Android 用户推荐 LanDroid
* Windows Phone 用户请使用 Console WP8 Lite
* Windows 和 OS X 用户不需要额外的软件
* Linux 用户的话,应该也不需要看这个文章了,相信你直接可以搞定了

检查方法是 ping cn.avoscloud.com,如何操作呢?

iOS 用户 请打开打开 iNetTools,进入 Ping,输入 cn.avoscloud.com,然后点右上角的「启动」,然后会显示如下的信息,过十来秒后再点停止。
ios_nettools_merged_1

ios_nettools_merged_2

Android 用户 请打开 LanDroid,选择 Ping,输入 cn.avoscloud.com,点击「 Go」,并等待几秒钟。
android_landroid_ping_merged

Windows Phone 用户 请打开 Console WP8 Lite,输入 ping cn.avoscloud.com,这里可能会弹出一个 Application Error 的对话框,选择「 No」,等待几秒钟。
wp_console_merged

Windows 用户 请直接打开命令行(Windows 键 + R,弹出窗口后输入 cmd 后按「回车」,然后出来一个黑框就是了),输入 ping cn.avoscloud.com,然后「回车」,看返回结果。
winxp_ping_merged

OS X 用户 请打开终端(Command + 空格键,然后输入 Terminal 后「回车」,弹出一个白色窗口就是了,我这里有点例外,是配置成黑色),输入 ping -c 5 cn.avoscloud.com,然后「回车」,看返回结果
macos_ping_merged

运行完毕,来对比一下结果。参考上面各类中最后的一张图片,其中画有红框的是需要关注的。
* IP 地址,如果 IP 地址是在 117.78.13.64~67117.78.21.64~67,则是正常的,否则就是 DNS 解析出错
* 丢包率,即用百分比表示的,如果大于 3%,则表示网络质量会影响应用的使用(有个例外, 就是第一次 ping 测试,丢包率会高一些,即使是 10% 也是正常的,这种情况让 ping 测试测久一点即可恢复正常)
* ping 响应时间,100(单位默认为 ms)以下都是可以接受的,高于 100 ms 会感到缓慢

丢包率和 ping 响应时间,与网络质量相关,如果有运行迅雷或者 BT 下载程序,请限速或退出。如果以上都是正常的值,但是应用加载缓慢或仍打不开我们的官网,请与你的应用开发者联系,并将检查应用的结果截图提交给开发者。

如果 ping 中发现 IP 地址不对,则是 DNS 解析有问题,如何知道是哪个 DNS 服务器有问题呢?

iOS 用户 请安装 Dyn Dig,并在 domain name 输入 cn.avoscloud.com,并按「Search」进行查询
ios_dyndig_merged_2

以上是中国移动网络下, DNS 异常的截图。这种情况下只能向中国移动打 10086 电话投诉,告之受影响的域名及 DNS 服务器的 IP,才能解决问题。

如果是在无线网络情况下, DNS 异常,则请通过路由器的 DHCP 设置,将默认的 DNS 修改为正常的 DNS(推荐 114.114.114.114),并重启路由器即可。

Android/Windows Phone 用户 没有能查到 DNS 服务器 IP 地址的应用,跳过,如果哪位知道,请告诉我。

Windows/OS X/Linux 用户 请使用 dig 工具,参考上面的方法,执行如下的命令
dig cn.avoscloud.com 普通基于 UDP 的 DNS 查询
dig +tcp cn.avoscloud.com 使用基于 TCP 的 DNS 查询
dig cn.avoscloud.com @114.114.114.114 向 114.114.114.114 普通基于 UDP 的 DNS 查询
dig +tcp cn.avoscloud.com @114.114.114.114 向 114.114.114.114 使用基于 TCP 的 DNS 查询

dns_udp_failed_china_mobile_beijing

dns_tcp_success_china_mobile_beijing
以上是在中国移动光宽带的网络下 DNS 异常的截图。这种问题,也请投诉给中国移动。

通过以上诊断,如果是本地无线网络配置问题,请修复本地网络。如果问题出在运营商网络(3G/4G 或宽带),请打运营商客服电话。如果是运营商的 DNS 服务有异常,请直接投诉,参考文章末尾。

据我们了解,中国移动的网络质量本来就比较差,TD-SCDMA 的速度大家有目共睹的。除了数据网络外,宽带网络也是比较差的,它的宽带网络是以前的铁通网络。除去网络质量因素,中国移动网络还有一个比较大的问题,就是 DNS 服务器异常,这个不只是我们 cn.avoscloud.com 域名有受到影响。DNS 异常不只是 DNS 响应错误的 IP 地址,某些地区的中国移动还有个简单粗爆的域名检查系统,包含 av 字样的域名一率返回错误的 IP,嗯,我们很受伤。

这里顺便说一下,我们向中国移动投诉的经历,历时两周,向中国移动投诉多次,向工信部投诉两次,才解决了北京地区的 DNS 异常情况。据我们了解,江苏和香港地区也还有不同程度的异常。也请当地的用户,和我们一起投诉当地的运营商,人多力量大。

关于如何投诉

首先请先拨打 10086 向中国移动客服投诉,告之域名解析出错,请记客服同学记录下受影响的域名 cn.avoscloud.com 和异常的 DNS 服务器 IP 地址(见 Dyn dig 中的截图),48 小时后会有处理结果。提醒一下,这里处理的速度并不乐观,一般都没有结果。

投诉到中国移动后 48 小时问题仍未解决的话,依据中国相关法律法规规定,可以向工信部申诉,网址是 http://www.chinatcc.gov.cn:8080/cms/shensus/,这里最好是以邮件的方式申诉,将具体细节和截图写在邮件里发送给 accept@chinatcc.gov.cn,工信部的相关同学最早会在第 2 天回电话并催促中国移动。

申诉邮件的内容需要包括两个部分:
一是申诉者的姓名、身份证号码、通信地址、邮编、联系电话、申诉涉及到的电话号码、电子邮件、申诉日期
二是被申诉企业名称、申诉内容(详情)、是否向企业申诉过(一定要先向企业投诉,无效后工信部才能受理,直接找工信部的不受理),最后要承诺「我承诺申诉信息真实有的」

【AVOS Cloud】与泡沫无关,我们刚完成 A 轮融资

avoscloud
不管泡沫多大,都与我们无关,对于 AVOS Cloud 来说,征途才刚刚开始,即使有寒冬,AVOS Cloud 将以更稳定的服务,始终陪伴所有创业团队一起度过。

为移动开发者提供一站式云服务的 AVOS Cloud 宣布完成 A 轮融资,投资方为 IDG 资本。

IDG 资本董事牛奎光表示「国内移动应用数量已经达到 70 万,对后端服务有很强的需求。AVOS Cloud 作为专门面向移动应用的基础设施服务,潜在市场可覆盖绝大部分移动应用开发者,业务成长迅猛。他们世界级的团队更是产品和服务的强大保障,我们很高兴有机会跟国内最优秀的 BaaS 团队合作。」

AVOS Cloud 的联合创始人和 CEO 江宏:「我们在很短的时间内取得了市场的领先地位,在追求进一步的产品创新和更快发展的过程中很高兴能够有 IDG 这样不但能提供资本、也能分享丰富战略经验的顶级投资机构作为伙伴。」

截止至 2014 年第二季度,全世界移动应用总数已超过 200 万,且仍在高速增长中。然而开发者却仍然面临冗杂的工作,如购买带宽、部署服务器、开发后端代码,还要进行日常的部署和运维。事实上,大部分应用的后端需求都大同小异,通用的后端平台可以大大减少应用开发的人力成本和时间成本。

AVOS Cloud 提供的正是应用开发的一站式云服务,这个类别的服务通常被称为 BaaS (后端即服务)。开发者无须编写后端代码、也无须关心服务器的配置和运维,只要通过集成 AVOS Cloud 提供的 SDK 就可得到一个稳定、成熟、功能强大的后端系统,在更短的开发周期里也能更加专注于用户体验的优化和应用自身的功能。

自 2013 年 9 月发布以来,AVOS Cloud 凭借出色的技术和良好的服务,在短时间内奠定了市场的领先地位,并在今年入选了微软创投加速器,成为了第五期的成员。微软创投加速器中国驻企执行官高欣欣说「他们在不到一年的时间里,吸引了超过 1 万名开发者和公司所使用,充分证明了他们的价值。整个 AVOS Cloud 团队也是由这个领域最好的技术专家所组成的。 我们深信,AVOS Cloud 将在移动开发大潮中,成为至关重要的生态系统成员。」

3377-11d2563755f566dc.jpg

BaaS 可以说是移动互联网催生的云服务模式,但其应用空间并不局限于移动,而是包括一切需要与云端通讯的终端应用,因此它不仅适用于移动应用、桌面应用、Web 应用的开发,还能应用在智能家居、可穿戴设备和物联网上。AVOS Cloud 也在最近推出了实时消息服务,移动开发者可以在自己的应用中加入这一功能,实现用户的实时聊天;北美节点也在近日开放试用,以帮助中国开发者走向更广阔的国际市场。

我们的本轮融资将主要用于团队的扩充,吸引最优秀的人才加入以增强竞争力,同时也会在市场和品牌方面加大投入,让更多开发者了解和使用 AVOS Cloud 的产品和服务。

关于 AVOS Cloud
AVOS Cloud 的联合创始人兼 CEO 江宏 于 2007 年在美国耶鲁大学取得计算机科学博士学位,后于 Google 总部工作。2011 年 10 月带领创业团队加入 YouTube 创始人陈士骏和 Chad Hurley 的创业公司 AVOS,并担任中国区总经理。在 AVOS 的支持下, AVOS 中国团队于 2014 年初独立并建立公司 AVOS Cloud,专注于面向应用开发的云服务业务,AVOS 成为种子轮投资者。

2014 年 9 月份 AVOS Cloud 中旬更新

Hi, 抱歉,让各位久等了,这个月的更新日志姗姗来迟。

9 月份以来,我们对 AVOS Cloud 做出了不少改进。首先,网站这块,我们大大增强了 Column 列的编辑功能,新增列的时候可以编写注释、设置默认值、是否隐藏以及是否必须等选项,另外针对 Number 类型的列可以设置自动增长选项,并且在创建后可以编辑列的这些属性。我们将列删除、重命名等功能转移到列边上的下拉菜单,如图所示:

avoscloud_column_edit

column_edit2

其次,我们改进了云代码日志的展现形式,更友好。我们还对 Demo 项目 展示做了改进,对每个 SDK 的 demo 做了梳理和划分,原来的 avoscloud-demo 仓库废弃,请前往具体的 SDK demo 仓库。我们还增加了很多 Demo,比如事件流、聊天等,希望能为您入手 AVOS Cloud 带来帮助。

实时通信的 JavaScript SDK 开始 beta 内测,如果您有需求,请在 技术支持 里提出申请,我们将酌情选择部分用户参与测试。

云代码命令行工具 发布了 0.4.9-RC3 版本,提高了 upload 命令的文件上传成功率,感谢用户对我们的督促。JavaScript SDK 同期发布了 0.4.2 版本, iOS 和 Android SDK 更新了 v2.6.4 版本,WindowsPhone SDK 发布 v1.2.0,并且更新 Unity3D SDK 到 v1.3.3 版本,详细更新日志见后面。

本周,Apple 推送了 iOS 8 更新,相信很多朋友已经第一时间升级尝试。有一个变更事项值得开发者注意,iOS 8.0 之后使用定位服务前需要调用 [locationManager requestWhenInUseAuthorization]; 或者 [locationManager requestAlwaysAuthorization]; 获取用户单次或永久授权,而这两个请求授权需要在 info.plist 里面对应添加 NSLocationWhenInUseUsageDescriptionNSLocationWhenInUseUsageDescription 的 key/value,value 为开启定位服务原因的描述,SDK 内部使用的是单次授权。

完整的更新详情如下。

网站和服务

  • 发布 Column (列) 的编辑功能,新增注释、必选、默认值、隐藏、自增等选项。
  • Number 类型的列可以选择自动增长,将在插入对象的时候自动增长,类似 MySQL 里 auto increment 选项。
  • 新增 Any 类型的列,可以存储任意类型的字段,只能在管理平台创建。
  • 应用内用户账号重设密码后,修改 sessionToken,确保在其他设备登陆失效。
  • 通过手机重设密码,要求手机号码必须是验证通过的,感谢用户建议。
  • 云代码命令行工具更新 0.4.9-RC3,提高文件上传成功率。
  • 梳理和增加 Demo 项目。

JavaScript SDK v0.4.2

  • 添加根据短信重置密码的相关 API : requestPasswordResetBySmsCoderesetPasswordBySmsCode
  • 修复 AV.Statussend 方法异常
  • 修复 AV.UserrequestEmailVerify 命名错误。
  • 实时通信的 JavaScript SDK 开始内测,欢迎从技术支持里提出申请。

Android SDK v2.6.4

  • 修正了 AVUser.cast 中遇到关联对象的类型转化异常
  • 修正 AVFile 在序列化过程中的多余字段
  • 限制了推送服务服务器断开后的连接频率
  • 针对大于 4M 的文件,并且选择存储在七牛的文件,自动启用分片上传功能。
  • 去除了 SNS 的平台限制,以提供 ShareSDK 接入功能
  • 添加 AVOSCloud 北美节点支持

iOS SDK v2.6.4

  • 调整实时通讯 API
  • 修复 AVObject 子类化时 64 位整数只能表示 32 位整数的问题
  • 添加日志开关,方便调试
  • 修复 Xcode6 下 public 头文件产生的警告问题
  • 修复 AVUse r 短信验证通过后重启本地数据没有保存的问题
  • 添加 AVOSCloud 北美节点支持

Unity3D SDK v1.1.3

  • 增加短信验证码重置密码功能。
  • 增加 QQ,新浪微博第三方账号登陆授权绑定 AVUser 的功能。

WindowsPhone SDK v1.2.0

  • 增加北美节点的支持。
  • 增加通过短信验证码来重置密码的功能。
  • 增加了 AVUser 与 QQ,新浪微博第三方用户绑定和解绑的接口。

AVOS Cloud SDK for Windows Desktop beta 悄然上线

经过 5 个月在微软阵营的探索,先后发布了 Unity SDK(纯 C# 语言打造的跨平台 SDK),Windows Phone 8 SDK 等用 C#语言构建的客户端 SDK 之后,根据开发者的强烈需求, AVOS Cloud 正式在 Nuget 平台上发布了 AVOS Cloud SDK for Windows Desktop(.NET 4.5)beta 版本,广大微软阵营的开发者可以利用此版本开发很多很有意思的应用程序,甚至可以把它当做 Azure SQL Server 的替代品,可以在 ASP.NET 以及 ASP.NET MVC 中引用 AVOS Cloud 作为「云数据库」 的不二之选,与此同时我们还将为 Desktop 版本进行一系列的个性化开发,以满足广大「云服务依赖综合征」 开发者的各种需求。

电梯直达:

AVOS Cloud 邀请您来参加 GCAC(成都)和 AGDC(深圳)大会!

blog

由国际知名投资机构 IDG 与新浪联合主办的全球 APP 开发创意争霸赛(GCAC,详见 官网),将于 10 月 16 日在 成都世纪城天堂洲际大饭店 隆重召开。本次活动将联合新浪科技等近百家国内媒体以及 200 家海外媒体进行宣传,吸引全球的优秀移动互联网企业,尤其是 APP 开发的个人、团队和企业踊跃参与;大会也将提供资本对接,以及本土化所需的软硬件资源等全方位支持。

由 IDG 主办的另一场开发者盛会:安卓全球开发者大会(AGDC,详见 官网),也将于 10 月 23-24 日,在 深圳香格里拉酒店 召开。本次大会将以「移动改变世界、智能定义未来」为主题,预计将聚集全国乃至全球最牛的安卓产品,更有熊晓鸽率领一众最大牌的互联网牛人来亲身传道授业解惑。

AVOS Cloud 作为两次会议官方唯一指定的云服务商,将携手合作伙伴 Microsoft、Unity、七牛云存储及知名游戏渠道,给广大开发者带来两次应用开发专场论坛。为了创造合作共赢的生态,我们也诚挚地向您发出邀请:我们预留了两个分论坛演讲的名额,免费提供给大家。通过这个分论坛你可以介绍自己的产品,展示自己的团队,也可以畅聊开发技术,与全球顶尖的开发者交流,更有对接投资人的机会。请有意参加的小伙伴 点击这里 报名,我们会从中选择两家公司或团队,来分别参加这两个论坛。

创业路上,AVOS Cloud 与你一路相伴,相知相惜。