FacebookClient GetTaskAsync 有时会返回无效的 JSON 字符串 (UWP 10)
本文关键字:字符串 JSON UWP 无效 GetTaskAsync 返回 FacebookClient | 更新日期: 2023-09-27 18:33:26
我正在尝试使用FacebookClient API从Facebook获取数据。但是,我有时会收到错误"无效的 JSON 字符串"。奇怪的是,有时我确实使用相同的任务获取数据。
这是我的代码
public async void GetData(String AccessToken, String task)
{
FacebookClient fbclient = new FacebookClient(AccessToken);
try {
var res = await fbclient.GetTaskAsync(task);//me/feed
String data = res.ToString();
/*IDictionary<string, object> o3 = (IDictionary<string, object>)await fbclient.GetTaskAsync(task);
JsonObject o2 = (JsonObject) await fbclient.GetTaskAsync(task);*/
}
catch (Exception e)
{
}
}
var res = ...给出错误。我不知道为什么它有时有效,而有时则无效。
提前谢谢。
SDK 最近停止在 Windows 10 应用 (UWP) 中工作,但在 Windows 8.1 应用中继续正常工作。
Facebook-csharp-sdk的GitHub页面上已经报道过。原因是 UWP 默认为较新的 HTTP/2 协议,这导致了问题。不幸的是,目前还没有修复程序。
更新:有一个临时解决方案,如果通过代理打开 Internet Explorer> Internet 选项>"高级>禁用 HTTP 1.1 和 HTTP1.1",则 SDK 将继续在 UWP 运行时中工作。显然不是问题的真正解决方案,但它使我们离找到根本原因更近了一步。
那些正在努力寻找Windows UWP应用程序与Facebook集成的永久解决方案的人,这里有一个更新的SDK。
在 GitHub 中https://github.com/Microsoft/winsdkfb
在 Nuget.orghttps://www.nuget.org/packages/winsdkfb/
可以使用此 Github SDK,也可以从 Nuget 包下载相同的 SDK。
登录后,FBSession对象包含用户的完整信息,可以替代fbclient。GetTaskAsync("me").
希望这有帮助