当前的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
,它在登录尝试后作为片段的一部分返回。