上一篇我们搭建好了SkyDrive APIs调用的环境。详细地址:SkyDrive APIs——搭建环境(1)。
这一篇展示一个调用示例。
在工具箱中找到SignInButton控件,并拖放至界面。(如果你的工具箱中没有SignInButton控件,请参考我的前一篇),XAML代码如下(略去以精简):
<Grid x:Name= "ContentPanel" Grid.Row= "1" Margin= "12,0,12,0" > <!--<Button Content= "log in" HorizontalAlignment= "Left" VerticalAlignment= "Top" Click= "Button_Click" /> <Button x:Name= "btnLiveGet" Content= "Get" HorizontalAlignment= "Left" VerticalAlignment= "Top" Click= "btnLiveGet_Click" Margin= "0,96,0,0" />--> <my:SignInButton Height= "72" HorizontalAlignment= "Left" Margin= "42,60,0,0" x:Name= "btnSignIn" VerticalAlignment= "Top" Width= "160" Branding= "Windows" ClientId= "Your Client ID here" TextType= "Login" Scopes= "wl.signin wl.basic" SessionChanged= "btnSignIn_SessionChanged" /> <TextBlock x:Name= "infoText" VerticalAlignment= "Center" HorizontalAlignment= "Left" FontSize= "{StaticResource PhoneFontSizeLarge}" /> </Grid> |
关键属性:
1. ClientId属性。这个属性是你在Live Connect Developer Center申请并创建的APP实例的ClientId(格式如:00000000603E0BFE),你需要这个KEY才能启动APIs,否则会报异常。
2. Scopes属性。 完全的documents请参考:http://msdn.microsoft.com/en-us/library/live/hh243646.aspx。
说明:其实就是对于用户的授权权限。 终端用户要通过你的APP进行登录和一系列的操作,那么他肯定有权知道你的APP会使用到他的哪些权限。这个就像是从marketplace中下载一个APP时,会提示软件会使用那些capabilities一样。这个配置文件位于WMAppManifest.xml文件中。 从上一篇文章中我们看到了SkyDrive只是LIVE CONNECT APIs中的一部分,那么就需要skydrive这一部分的权限。 打个比方:就好像酒店房间, 你要想进入哪个房间,你首先得去申请到进入那个房间的房卡,然后才能进去,那么这个房卡就对应了一个scope,这样说应该很明白了吧。
Scopes="wl.signin wl.basic"多个scope使用空格“ ”分开即可。 不过微软建议从用户体验来说,别滥用scope, 你只需你的APP必须要用到的scopes即可。
3. Branding属性。 这个属性只是用于显示登录按钮的图标样式。有几个可选值:
Windows: Skydrive:
Messenger: Hotmail:
4. SessionChanged事件。
private void btnSignIn_SessionChanged(object sender, Microsoft.Live.Controls.LiveConnectSessionChangedEventArgs e)
{
if (e.Status == LiveConnectSessionStatus.Connected)
{
liveClient = new LiveConnectClient(e.Session);
infoText.Text = "Signed in.";
liveClient.GetCompleted += new EventHandler<LiveOperationCompletedEventArgs>(liveClient_GetCompleted);
liveClient.GetAsync("me");
}
else
{
infoText.Text = "Not signed in.";
liveClient = null;
}
}
说明:设个断点调试你会发现,当一进入到这个DEMO页面后SessionChanged就被触发了。我们可以根据e.Status状态来判断是否登录成功。
通过单击来进入到授权登录页面
这个时候会要求用户输入live 账号进行登录。 当输入完用户名和密码后,点击登录并验证通过后,就进入到了授权界面:
单击底下的“是”按钮后,即用户同意授权后。 SessionChanged再次被触发,我们看下e.Status的状态变成了Connected,到此,用户登录,并授权完成。 接下来你就可以在用户授权的范围下做你想做的事情了——酒店房间已开,你想怎么方便请便。
至此, 本篇已完成,是不是觉得其实很简单。下篇将会讲述如何进行SkyDrive文件(夹)的操作。
转载请说明出处:http://www.cnblogs.com/mehale/archive/2012/05/25/2517941.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!