1

我需要从 wp8 在 facebook 上分享一条消息。我附上了我的 Main.xaml 屏幕截图。

这是 Main.xaml 的视图

单击分享按钮时,首先登录 Facebook,然后请求应用程序的权限。我使用了以下代码。

 private FacebookSession session;
    private async Task Authenticate()
    {
        string message = String.Empty;
        try
        {
            session = await App.FacebookSessionClient.LoginAsync("user_about_me,publish_actions,read_stream");

            App.AccessToken = session.AccessToken;
            App.FacebookId = session.FacebookId;

            Dispatcher.BeginInvoke(() => NavigationService.Navigate(new Uri("/Share/LandingPage.xaml", UriKind.Relative)));
        }
        catch (InvalidOperationException e)
        {
            message = "Login failed! Exception details: " + e.Message;
            MessageBox.Show(message);
        }
}

然后在 LandingPage.xaml 的 Loading 方法中,使用以下代码发布消息。

    private async void LandingPage_Loaded(object sender, RoutedEventArgs e)
    {
        FacebookClient client = new FacebookClient(App.AccessToken);

        var parameters = new Dictionary<string, object>();
        parameters.Add("message", "First test post using Facebook login");

        await client.PostTaskAsync("me/feed", parameters);
    }

当我运行 App 时,成功登录 Facebook,但权限屏幕显示如下。 权限页面截图

点击确定。然后发生错误。

(OAuthException - #200) (#200) The user hasn't authorized the application to perform this action

我尽力解决这个问题,但我失败了。如果有人有解决这个问题的想法。请帮我

谢谢你。

4

1 回答 1

0

我认为您缺少访问令牌请求中的请求代码。

dynamic result = facebookClient.Get("oauth/access_token", new
{
    client_id = appId,
    client_secret = appSecret,
    grant_type = "authorization_code"
    redirect_uri = Request.Url.AbsoluteUri,
    code = Request["code"]
});
于 2014-06-14T07:05:13.083 回答