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 = ...给出错误。我不知道为什么它有时有效,而有时则无效。

提前谢谢。

FacebookClient GetTaskAsync 有时会返回无效的 JSON 字符串 (UWP 10)

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").

希望这有帮助