c# - W8/WP8 c# sdk 是否可以实现 facebook 用户对用户的请求?

标签 c# facebook windows-8 windows-phone-8 facebook-c#-sdk

我正在尝试让我的手机游戏从 Facebook 邀请 friend ,但我做不到。我正在使用适用于 Windows 8 的 Facebook c# SDK(希望在准备好移植到 WP8、Android 和 iOS 时移植)但问题是我对 facebook API 参数感到困惑:

这是我的代码:

var fb = new FacebookClient (accessToken);
dynamic parameters = new ExpandoObject();
parameters.appId = facebookAppId;
parameters.message = "This is a test!";
parameters.to="friendID1,friendID2,...";

string request=String.Format ("/me/apprequests");
dynamic result = await fb.PostTaskAsync (request, parameters);

当我使用此代码时,Post 任务正确完成,但是(检查结果变量并查看 facebook)“我”用户收到了该邀请。 “收件人”字段似乎被忽略,“我”是唯一收到请求的人。

如果我用

string request=String.Format ("/{0}/apprequests",FRIEND_ID);

而不是/me/apprequests,然后我收到以下错误:

OAuthException“(#2)无法创建任何应用程序请求”,

我在某些地方读到访问 token 必须是应用 token ,但文档说它应该只在您的服务器执行这些请求时使用,我想要的是用户对用户的请求,不是应用程序对用户的请求。

到目前为止,我已经看到可以通过对话请求在 Android 和 iOS 中获取它,但我没有在 C# SDK 中找到它们,所以我尝试手动进行应用请求,但没有成功。

是否可以在 Windows Phone 8 或 Windows 8 上使用它?怎么办?

谢谢, 卡克

最佳答案

是的,这是可能的。遗憾的是,您无法通过 SDK 执行此操作,因为 Facebook 不允许您以编程方式发送请求。它必须通过对话框请求框/弹出窗口完成。

因此,在尝试以下解决方案之前,请确保用户已登录。使用 LoginAsync 方法获取 Facebook 访问 token 后,请按照以下步骤操作。

  1. 在启用脚本的 xaml 中创建 WebBrowser 控件。

<phone:WebBrowser Visibility="Collapsed" IsScriptEnabled="True" Name="FbBrowser"></phone:WebBrowser>

  1. 现在在您的后台代码中,创建一个字符串,其中包含您要邀请的用户的 Facebook ID,格式为 CSV 格式,例如“id1,id2,id3”。

  2. 将网络浏览器导航到以下页面并订阅导航事件: "https://m.facebook.com/dialog/apprequests?" + "message=your_message&app_id=" + "your_facebook_appid" + "&redirect_uri=https://m.facebook.com&to=" + user_facebook_ids_CSV + "&sdk=2&display=touch"

FbBrowser.Visibility = Visibility.Visible; FbBrowser.Navigating += FbBrowser_Navigating; FbBrowser.Navigate(url1);

  1. 您可以在导航事件中处理网页的成功和失败响应。

private void FbBrowser_Navigating(object sender, NavigatingEventArgs e) { if (e.Uri.ToString().StartsWith("https://m.facebook.com/?error_code") || e.Uri.ToString().StartsWith("https://m.facebook.com/?request")) { FbBrowser.Visibility = Visibility.Collapsed; FbBrowser.Navigate(new Uri("about:blank"));<br/> } }

关于c# - W8/WP8 c# sdk 是否可以实现 facebook 用户对用户的请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21067358/

相关文章:

c# - Visual Studio 2015 Intellisense 中没有 Bower 包

html - 如何让弹窗覆盖文章

java - Android - Java - 发送 facebook 聊天消息的 Intent (facebook 禁用 xmpp)

.net - 在Windows 8上安装Visual Studio 2012 Ultimate

javascript - 我的 Windows 8 应用程序中的磁贴上的徽章

c# - Entity Framework : Update affecting Object

c# - 使用 BinaryFormatter 序列化和反序列化 List<List<object>>

c# - 将空值作为字符串传递

iphone - 如何检查是否已经在 ios 中登录 Facebook?

c# - Win8 : Hiding Toast Notifications