65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 WPF 创建简单的 Facebook 应用程序

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.79/5 (34投票s)

2007年8月16日

3分钟阅读

viewsIcon

220440

downloadIcon

9436

以下文章详细介绍了如何使用 Facebook Platform & WPF 创建一个非常简单的 Facebook 应用程序。

Screenshot - logo.jpg

引言

Facebook 的发展速度惊人(已经注册了 3000 万用户,每 6 个月翻一番)。新的 Facebook 平台是一个令人难以置信的软件平台,可以使用提供的 SDK 轻松扩展。以下 Code Project 文章介绍了如何为 Facebook 创建一个非常简单的 MSN Messenger 或 Yahoo! Messenger 类型的应用程序。

在本文中,我将概述如何设置您的 Facebook 应用程序,并编写一个非常基本的 WPF 应用程序,该应用程序连接到 Facebook 并填充您的好友列表。

设置 Facebook

访问 开发者网站

Screenshot - screen1.jpg
  • 点击“开始使用”
  • 添加 Facebook 开发者应用程序
  • 登录 Facebook
  • 添加开发者应用程序
  • 设置新应用程序
  • 应用程序名称:WPFB(在这里您可以选择任何名称,只要它不包含单词 Face)
  • 点击复选框同意许可协议,并展开可选字段
  • 将应用程序类型更改为桌面(这非常重要!)
  • 提交
Screenshot - screen2.jpg

保留 API 密钥和秘密,以备后用。

这里 讨论了披露您的应用程序的密钥是否合法。

创建一个简单的 UI

这里 下载 Facebook SDK 二进制文件。

创建一个 WPF 应用程序,并将 ImageListBox 控件添加到 StackPanel 中。

<StackPanel>
    <Image x:Name="ProfilePicture"Stretch="None"HorizontalAlignment=
                        "Left"VerticalAlignment="Top"/>
    <ListBox x:Name="FriendsListBox"/>
</StackPanel>

将以下引用添加到您的项目中

  • Facebook.dll
  • Facebook.Controls.dll
Screenshot - Refrences.jpg

此外,添加以下命名空间

using Facebook.Components;               //FacebookService

using Facebook.Exceptions;
using Facebook.Entity;                   //User

using System.Windows.Media.Imaging;      //BitmapImage

using System.Collections.ObjectModel;    //Collection

接下来,我们必须创建 Facebook 服务的实例。

FacebookService service;

现在,我们还需要使用之前记录的 API 密钥和秘密来设置服务。 我目前在我的 Window 的构造函数中执行此操作。

service = new FacebookService();
service.IsDesktopApplication = true;
service.ApplicationKey = "1969299cd5b87513af9633715e0a63e9";
service.Secret = "5b3ff1b88c41eb117014f403e5cb9952";

现在我们准备开始从 Facebook 获取信息了。 要从 Facebook 下载我的个人资料图片,请将以下代码添加到 Window 的 SourceInitialized 事件中。

User me = service.GetUserInfo();
if (me != null)
    ProfilePicture.Source = new BitmapImage(me.PictureSmallUrl);

这基本上是从指定的 URL 下载小的个人资料图片。 现在是保存和测试您的项目的好时机。 一旦您编译并运行了此应用程序,就会显示以下登录屏幕

Screenshot - logon.jpg

我还注意到,如果您位于 HTTP 代理服务器后面,则此功能目前不起作用。 我得到一个“底层连接已关闭”异常。 希望 Facebook SDK 的未来版本将包括对代理服务器的支持,并允许您通过使用一个可以提供用户名和密码的函数而不是显示基于 HTML 的登录屏幕来登录...

填写您的用户名和密码,现在点击登录。 您应该会看到一个显示您的个人资料图片的窗口!

下一步是将 ListBox 填充我的所有朋友。 要从 Facebook 获取所有朋友,请将以下代码添加到 SourceInitialized 事件中

Collection<User> friends = service.GetFriends();

使用以下 DataTemplate 更新朋友的 ListBox

<ListBox x:Name="FriendsListBox" ItemsSource="{Binding}">
   <ListBox.ItemTemplate>
       <DataTemplate>
           <Image Source="{Binding Path=PictureSmallUrl}" />
       </DataTemplate>
   </ListBox.ItemTemplate>
</ListBox>

最后一步是将 ListBox 指向 friends 集合。

FriendsListBox.ItemsSource = friends;

结论

如您所见,设置和创建一个简单的 Facebook 应用程序并不难。 在接下来的几天里,我将在此基础上进行扩展并更新应用程序。 计划的未来扩展将包括

  • 来自 Facebook 的通知
  • 更多支持换肤的“精美 UI”,以及
  • 双击好友后的发送消息功能
Screenshot - done.jpg

只需稍加努力和快速的美化润色,最终的应用程序看起来就是这样! (我借用了 Sacha Barber 的 Glass Button 效果用于 friends 图标)

请评论我如何改进我的文章(因为这只是我的第二篇文章),也请评价这篇文章(即使您认为它毫无用处!)

链接

历史

  • 2007 年 8 月 13 日 - 初稿
© . All rights reserved.