Windows Azure 移动服务: 对iOS 应用、 Facebook/Twitter/Google验证、 电子邮件、 SMS、 Blob、 Service Bus和更多的新支持

[原文发表地址]  Windows Azure Mobile Services: New support for iOS apps, Facebook/Twitter/Google identity, Emails, SMS, Blobs, Service Bus and more

[原文发表时间] 2012-10-16 13:54

几周前,我写了一篇有关Windows Azure 移动服务博客 -Windows Azure中的新功能使之非常简单地将您的客户端和移动应用程序连接到可伸缩的云后端。

今天早些时候,我们交付了一些对 Windows Azure 移动服务的重大改进。新功能包括:

  • iOS 支持 — —您能够将 iPhone 和 iPad 应用程序连接到移动服务
  • 移动服务提供Facebook、 Twitter 和Google身份验证支持
  • 移动服务提供 Blob、 表、 队列和Service Bus的支持
  • 从您的移动服务中发送电子邮件(与 SendGrid 建立合作伙伴关系)
  • 从您的移动服务中发送SMS(与 Twilio建立合作伙伴关系)
  • 能够在美国西部地区部署移动服务

所有的这些改进现在都在产品中,可立即开始使用。下面是有关它们的更多详细信息:

iOS 的支持

这周我们为将基于 iOS 的设备 (包括 iphone 和 ipad) 连接到 Windows Azure 移动服务交付了最初的支持。就像我们的 Windows Azure SDK 的其余部分一样,我们提供本机 iOS 库来启用GitHub上开源(Apache 2.0)许可下的此功能。我们非常兴奋地通过我们的论坛GitHub 问题列表获得有关此新库的反馈,并且我们欢迎对 SDK 的贡献程序

若要创建一个新的 iOS 应用或将现有的 iOS 应用连接到您的移动服务,只需选择 Windows Azure 门户中一个移动服务的Quick Start(快速启动)视图内的"iOS"选项卡,然后按照" Create a new iOS app(创建一个新的 iOS 应用)"或" Connect to an existing iOS app(连接到一个现有的 iOS 应用)"下面的链接:

image

单击这些链接的其中之一,这将展开和显示如何构建一个与您的移动服务相连接的iOS 应用的分步说明:

image

阅读此入门教程来浏览如何构建一个 (在 5 分钟以内) 简单的iOS"Todo List"应用,并将数据存储在Windows Azure 中。然后按照以下教程来探讨如何使用 iOS 客户端库来存储数据,并对用户进行身份验证。

Facebook Twitter Google身份验证支持

我们移动服务的初始预览版支持使用 Microsoft 帐户 (以前称为 Windows Live ID 帐户) 来验证移动应用程序的用户。这周我们将添加使用 Facebook、 Twitter 和Google凭据的用户身份验证。现在这些支持Windows 8应用程序以及 iOS 应用 (单个应用程序可以同时支持多种身份验证,所以您可以为您的用户提供如何登录的选择)。

下面的教程演练了如何使用身份凭据注册您的移动服务:

以上教程演练了如何获得一个客户端 ID 和密钥。然后你可以点击你的移动服务的" Identity "选项卡(在 Windows Azure 门户内),并保存这些值来启用您的移动服务的服务器端验证:

image

然后,您可以在您的客户端或移动应用内编写代码来对您的移动服务的用户进行身份验证。例如,下面是使用Facebook 凭据登录到移动服务时,所需要编写的代码:

Windows Store 应用 (C#):

 var user = await App.MobileService
  
                     .LoginAsync(MobileServiceAuthenticationProvider.Facebook); 

iOS 应用 (Objective C):

 UINavigationController *controller =
  
 [self.todoService.client
  
     loginViewControllerWithProvider:@"facebook"
  
     completion:^(MSUser *user, NSError *error) {
  
        //...
  
 }];

了解更多关于使用 Microsoft 帐户、 Facebook、 Twitter 和Google进行验证移动服务的信息,请参阅这些教程:

为您的移动服务使用 Windows Azure Blob 表和 Service Bus

通过使用服务器脚本,移动服务提供了一种简单而强大的方式来添加服务器逻辑。这些脚本是与您的移动服务的表上个别CRUD 操作相关联的。服务器脚本非常适合数据验证、 自定义的授权逻辑 (例如是否此用户参加本次会话)、增强 CRUD 操作、 发送推送通知和其他类似的方案。

服务器脚本是用JavaScript 编写的,是在使用 Node.js 而构建的安全服务器端脚本环境中执行的。你可以编辑这些脚本,并在 Windows Azure 门户中,直接将它们保存在服务器上:

image

在本周的发布中,我们加入了功能,以此与来自您的移动服务服务器脚本的其他 Windows Azure 服务一起使用。这是通过使用Windows Azure SDK for Node.js内的现有"azure"模块而受支持的。例如,下面的代码可用于在移动服务脚本中来获取引用 Windows Azure 表 (之后,您可以进行查询,或将数据插入到其中):

 var azure = require('azure');
     var tableService = azure.createTableService("<< account name >>", 
                                                 "<< access key >>");

 

按照Windows Azure Node.js 开发人员中心上的教程来了解有关将Blob、 表、 队列和Service Bus与azure模块一起使用的更多信息。

从您的移动服务中发送电子邮件

在本周的发布中,通过与SendGrid建立合作伙伴关系,我们也增添了轻松地从您的移动服务中发送电子邮件的功能。无论你是想要在用户成功注册后添加一封欢迎电子邮件,还是让你的应用程序提醒您某些活动的使用情况,现在你可以通过从移动服务服务器脚本发送电子邮件来实现。

若要开始,请在https://sendgrid.com 上注册一个SendGrid 帐户。Windows Azure 客户享有每月25,000封免费电子邮件的特别优惠。若要注册此优惠,或获取更多的信息,请访问https://www.sendgrid.com/azure.html

一旦注册之后,您可以将以下脚本添加到您的移动服务服务器脚本以此来通过 SendGrid 服务发送电子邮件:

 var sendgrid = new SendGrid('<< account name >>', '<< password >>');

    sendgrid.send({

        to: '<< enter email address here >>',

        from: '<< enter from address here >>',

        subject: 'New to-do item',

        text: 'A new to-do was added: ' + item.text

    }, function (success, message) {

        if (!success) {

            console.error(message);

        }

    });

按照使用 SendGrid,从移动服务中发送电子邮件教程来了解详细信息。

从您的移动服务中发送( SMS )短信息

SMS 是移动应用程序的重要沟通媒介 — —如果您想要您的应用程序在注册过程中向用户发送确认代码,允许用户邀请他们的朋友来安装您的应用程序或在没有智能手机时联系移动用户,它是很方便的。

通过使用移动服务服务器脚本和 Twilio 的REST API,现在您可以轻松地发送短信息到您的应用程序中。若要开始,注册一个 Twilio 帐户。当将Twilio 和 Windows Azure一起使用时,Windows Azure 客户享有1000条免费文本短信。

一旦注册之后,您可以将以下内容添加您的移动服务服务器脚本来发送 SMS 消息:

 var httpRequest = require('request');

var account_sid = "<< account SID >>";

var auth_token = "<< auth token >>";

 

 // Create the request body

 var body = "From=" + from + "&To=" + to + "&Body=" + message;

 

 // Make the HTTP request to Twilio

 httpRequest.post({

     url: "https://" + account_sid + ":" + auth_token + 

          "@api.twilio.com/2010-04-01/Accounts/" + account_sid + "/SMS/Messages.json",

     headers: { 'content-type': 'application/x-www-form-urlencoded' },

     body: body

 }, function (err, resp, body) {

     console.log(body);

 });

我这周会在TwilioCon会议上发言,对此我很兴奋,我将展示当将 Twilio 和 Windows Azure 移动服务一起使用时,现在您可以启用的酷方案。

美国西部地区的移动服务的可用性

我们的Windows Azure移动服务初始预览版仅在Windows Azure的美国东部地区受支持。随着每个 Windows Azure 服务的发展,我们会延伸移动服务到所有 Windows Azure 区域。在本周的预览版更新中,我们添加了支持,因此您现在也可以在美国西部地区创建您的移动服务:

image

总结

上述各项功能都已在产品中,可立即使用。如果您还没有一个 Windows Azure 帐户,您可以注册一个免费试用,并今天开始使用移动服务。访问Windows Azure 移动开发人员中心来了解更多有关如何使用移动服务构建应用程序的信息。

本周晚些时候,我们将会有更多的新功能和增强功能— — 包括对 Windows Azure Web 站点的.NET 4.5 支持。当这些新功能将变为可用时,请留心我的博客来了解详细信息。

希望这对你有所帮助

Scott

P.S. 除了写博客之外,我现在也正在使用 Twitter来快速更新和分享链接。我的Twitter为: twitter.com/scottgu