2012-02-02 73 views
2

当前WP7示例项目是否有效? 我已经下载它并输入了我的应用程序ID和密钥,我知道该密钥是从以前的WM6.5应用程序工作的。 我收到了Facebook登录页面,然后登录。 我收到页面,询问我是否想授予权限,我这样做。WP7 Facebook SDK示例代码不起作用

代码然后在查找“access_token”键时抛出KeyNotFoundException。我一直穿插着代码:

如果(objectname.ContainsKey(“access_code”)) ...

我已经把这个到处都可以看到正在尝试去寻找这个关键,无济于事。该代码仍然在同一点错误。

自从这个示例代码上次测试成功后,脸书上的内容有了变化吗?还有什么我应该做的?

非常感谢

+0

有一个最近对Facebook的API的变化,但不影响标记名称。你能确认你使用的是哪个版本的代码(和样本)。 – 2012-02-02 01:54:07

回答

0

如果你只是在记录那么就没有你需要的称为access_code的参数。

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

1

下面是如何在WP7中使用Facebook SDK的示例。 所以基本上我在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; 
      } 
     } 
    }