前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >获取漫游到云中的数据

获取漫游到云中的数据

作者头像
Drake
发布2018-01-08 17:53:26
3.4K0
发布2018-01-08 17:53:26

以下文章由微软高级内容发布主管Katrina Lyon-Smith撰写并贡献给博客。

在云中漫游数据

你想要创建一个能在云中储存数据的app吗?

你想让任何一个运行你app的设备获取这些数据吗?

你想更新你app在设备上的磁贴内容吗?

那么这篇文章你一定要看...

假设你想创建一个便签,那么你可以在Windows8电脑桌面上创建一个便签。然后这个便条会被发送到Windows 8手机和Windows Surface的磁贴里,这样你就不会忘了他了, Windows Azure移动服务与Windows应用商店和Windows 8手机应用协同,可以帮助您轻松地做到这些。

在开始之前,您应该知道以下几点。

账户

首先你需要三个账户。我相信你大概已经知道是哪三个账户了,如果你还没有注册,那么直接注册就可以了。

  1. 您需要一个Microsoft帐户
  2. 为了能访问云请启用您需要一个启用了Windows Azure移动服务的Windows Azure账户
  3. 为了注册您的应用程序,您需要一个开发者账户

您可以通过这篇教程来了解如何创建一个Azure mobile 服务并部署一个获取远程数据的应用。

构建Windows Azure移动服务应用程序

第1步:创建您的移动服务应用程序

您可以通过阅读这篇教程来创建Azure移动服务和可以访问该服务的应用程序。它会一步步的为您介绍如通过使用Windows应用商店应用或Windows 8手机应用实现这些。它会为您创建一个清单应用。然后您可以通过修改这个应用,来修改你Azure移动服务需要储存在SQL Azure 的内容。两篇教程互相参考,可以使您快速了解如何使用Azure移动服务。

第2步:验证用户

来通过这篇教程了解如何使用Azure移动服务对用户进行身份验证。它支持使用以下身份进行验证:

  1. 微软帐户
  2. Facebook登录
  3. Twitter登录
  4. Google登录

为了使您用户的每次登陆更加轻松,您可以通过阅读这篇教程来认证那些已经在设备上登陆过的用户。

注意:在配置Windows 8手机应用程序并获取其客户端ID时,必须确认您正在配置移动应用程序。移动应用使用不同的OAuth 2.0身份验证流程。详情请看这里

第3步:只有我可以看到我的数据

现在您验证了用户,您需要确保每个用户只能访问自己的数据。我不希望再没有狗的情况下清单上让我去喂狗(笑),此教程将向您展示如何使用服务器端脚本来执行此操作。

第4步:更新您的应用程序的动态磁贴

如果您添加了一个待完成项目,那么您一定想把它发送到所有设备的动态磁贴上。

为此您可以使用Azure移动服务的推送通知。首先您必须找到正在运行你应用的设备的uri频道。然后在服务器添加用户提醒规则脚本。通过服务器端的设置,任何访问SQL Azure数据的应用程序都会获取到这些内容。

您可以通过以下这两篇教程来实现这一操作:

  1. 设置您的Azure移动服务并推送通知
  2. 添加一个表来存储频道和用户ID发送推送通知

现在,您的应用会将通知推送到频道表中的所有频道。但是在实际应用中,您也许只想通知到一些特定的用户。

所以来让我们进行下一步:

第5步:更新特定用户的动态磁贴

Windows Store应用程序和Windows 8 Phone应用程序有不同的推送通知。您可以决定哪一个最适合您的应用程序。要将通知发送到与特定用户关联的通道,需要从Windows Azure管理门户中更新服务器端脚本。

1.更新服务器端脚本以插入通道表

您首先需要更新服务器端脚本,确保使每一个uri频道只关联一个用户。

该脚本将一个用户ID添加到频道表。它检查是否有一个现有的渠道为uri。如果有,则检查用户标识是否是当前用户标识。如果不是,则用当前用户ID更新该URI的频道记录。

如果没有现有频道,则为该uri和用户ID添加一条记录。

代码语言:c
复制
function insert(item, user, request) { 
    

    item.userId = user.userId;

    var channelTable = tables.getTable('Channel');
    channelTable
        .where({ uri: item.uri})
        .read({ success: insertChannelorUpdate});

    function insertChannelorUpdate(existingChannels) {
        if (existingChannels.length > 0) {
            if (existingChannels[0].userId == user.userId)
                {request.respond(200, existingChannels[0]);}
            else
                { var channelItem = { id: existingChannels[0].id,     
                            uri: existingChannels[0].uri,
                            userId: user.userId };   
                    channelTable.update(channelItem);
                }
            }
          else { request.execute(); }     
         }
     }                               

接下来升级服务器端脚本,为了能够顺利的推送通知,我们需要把数据插入你的表中。   2.更新服务器端脚本以插入到您的数据表中   当您的数据表添加记录时,此脚本仅向连接到该用户的通道发送推送通知。例如,您添加一个项目“拿起牛奶”,文本“拿起牛奶”被推送到任何设备登录到您的应用程序的动态磁贴。   下面这个脚本展示了如何同时向Windows 8 phone 和Windows 商店应用同时推送。

代码语言:js
复制
function insert(item, user, request) { 
    

    item.userId = user.userId;

    request.execute({
        success: function() {
            request.respond();
            sendNotifications(); }
         });

            function sendNotifications() {
                var channelTable = tables.getTable('Channel');
                channelTable.where({userId: user.userId}).read({
                    success: function(channels) {
                        channels.forEach(function(channel) {     
                            push.wns.sendTileSquareText02(channel.uri, {
                                    text2: item.text },   
                            {
                        success: function(pushResponse) {
                            console.log("Sent push windows store:", pushResponse);
                    }     
                });
                push.mpns.sendFlipTile(channel.uri, {                                   
                    title: item.text
                },{
                        success: function(pushResponse) {
                            console.log("Sent push windows 8 phone:", pushResponse); }
                    });
                    }
                );
            }
          });
        }
    }

现在您就可以从云端漫游数据到你的app了,你同样也可以增加更多的功能来提醒你的用户们。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
多因子身份认证
多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档