WP7 Facebook SDK示例代码不起作用



当前的WP7示例项目有效吗?我已经下载了它,并输入了我的应用程序id和密钥,我知道这可以在以前的WM6.5应用程序中使用。我得到了facebook的登录页面,然后我登录了。我收到页面询问我是否想授予许可,我照做了。

然后,代码在查找"access_token"键时抛出KeyNotFoundException。我在代码中添加了:

if(objectname.ContainsKey("access_code"))…

我把这个放在了所有我能看到的地方,有人试图寻找这个钥匙,但没有成功。代码仍然在同一点上出错。

自从上次成功测试这个示例代码以来,脸书方面有什么变化吗?我还有别的事情要做吗?

非常感谢

下面是一个如何将Facebook SDK与WP7一起使用的示例。所以基本上我在MainPage.xaml上得到了webBrowser1,但默认情况下它是隐藏的。

代码背后:

void MainPage_Loaded(object sender, RoutedEventArgs e)
{
            string appId = "";
            string[] extendedPermissions = new[] { "publish_stream", "offline_access", "user_groups" };
            var oauth = new FacebookOAuthClient { AppId = appId };
            var parameters = new Dictionary<string, object>
                {
                    { "response_type", "token" },
                    { "display", "touch" }
                };
            if (extendedPermissions != null && extendedPermissions.Length > 0)
            {
                var scope = new StringBuilder();
                scope.Append(string.Join(",", extendedPermissions));
                parameters["scope"] = scope.ToString();
            }
            var loginUrl = oauth.GetLoginUrl(parameters);
            webBrowser1.Navigate(loginUrl);
            webBrowser1.Visibility = System.Windows.Visibility.Visible;
            webBrowser1.Navigated += webBrowser1_Navigated;
}
void webBrowser1_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e)
    {
        FacebookOAuthResult result;
        if (FacebookOAuthResult.TryParse(e.Uri.AbsoluteUri, out result))
        {
            if (result.IsSuccess)
            {
                string _accessToken = result.AccessToken;
                webBrowser1.Visibility = System.Windows.Visibility.Collapsed;
            }
            else
            {
                var errorDescription = result.ErrorDescription;
                var errorReason = result.ErrorReason;
            }
        }
    }

我认为这可能是您正在寻找的答案:

http://facebooksdk.codeplex.com/discussions/284103

另请参阅:http://facebooksdk.codeplex.com/workitem/5925

var jsonObject = new JsonObject();
if (returnParameter.ContainsKey("access_token"))
{
    jsonObject["access_token"] = returnParameter["access_token"];
}

如果您只是登录,则不需要名为access_code的参数。

我怀疑您需要使用access_token,它在登录尝试后作为片段的一部分返回。

相关内容

最新更新