将XNA开发的WP7游戏成就发布到Facebook

7
最近我们正在为Windows Phone 7开发一个基于3D XNA的游戏。我们想要集成一个成就系统并能够将成就发布到Facebook上。我的问题是:是否已经有人完成了类似的事情?是否有任何好的教程/资源可以告诉我们如何实现?
据我所知,为了在Facebook上登录,可以在XNA上启动WebBrowserTask,它将使用Internet Explorer应用程序打开一个URL,但与此同时,当用户按下返回按钮时,XNA游戏将被停用并重新激活。OAuth令牌可以通过我们自己的服务器传回应用程序。但这是唯一的方法吗?
编辑:我已经成功解决了Facebook OAuth没有浏览器问题,请参阅我的博客文章:http://roman.ae-labs.org/?p=116

1
@Kel,您提供的博客链接不存在。能否更新为新链接,以便将来帮助其他人。 - nkchandra
2个回答

5

使用WebBrowserTask无法直接完成此操作。您需要在应用程序中嵌入一个Web浏览器,但是使用XNA无法实现。

这个问题在Facebook论坛上被问到过。

作为解决方法,您可以间接地尝试使用WebBrowserTask:

  1. 让您的应用程序打开一个包含设备ANID的网页(使用WebBrowserTask)。
  2. 在该网页上,提供与Facebook进行OAUTH的功能,并让您的网页管理ANID和OAUTH登录之间的关联。
  3. 当您想要发布成就时,请让应用程序将成就和ANID发送到您的网站,然后让网站将更新中继到Facebook。

您的应用程序需要检查您的网站以查看oauth是否已完成,因为该站点无法在第2步后发送响应(没有推送通知)。

未经测试,但我不认为上述方法行不通。


好的,谢谢。我想我得试一下。我会在这里发布我的发现。 - Kel
1
不幸的是,这是我能想到的唯一方法,因为在Android和iOS中的应用内单点登录涉及与原生Facebook应用程序的交互。 - BeRecursive

-2

看看Facebook C# SDK。在当前源代码中,我们有一个示例WP7应用程序,向您展示如何进行Facebook登录。这应该是您开始的所有内容。 http://facebooksdk.codeplex.com


这个示例对我没什么帮助,它是针对WP7上的Silverlight的。我正在寻找一个适用于WP7的XNA解决方案(不幸的是,在WP7的xna应用程序中不能托管SL或者WebBrowser)。但框架的核心看起来很不错,我会去查一下的。 - Kel
有三个示例。WP7,浏览器中的Silverlight,以及独立于浏览器之外的Silverlight。 - Nate Totten
我没有做过任何XNA开发,但如果你不能使用浏览器框架,那么用户就无法登录Facebook。Facebook OAuth需要一个浏览器。你需要在应用程序之外构建一些东西,获取用户的访问令牌并请求离线访问,这样你就可以保存他们的访问令牌并重复使用它。你可以在游戏中使用C# SDK,或者采用上述讨论的方法调用自己的Web服务,然后从服务器调用Facebook。 - Nate Totten

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接