facebooksdk.net 发布不工作 - 无法让 LoginButton.CurrentSession 发布到

facebooksdk.net publish not working - can't get LoginButton.CurrentSession to publish to

我遇到了一个看似非常简单的问题 - 我正在尝试使用 facebooksdk.net 发布到用户供稿。

首先,我使用以下命令进行安装,得到 Facebook.Client 版本 0.9.91-alpha:

Install-Package Facebook.Client -pre

接下来,我有一个登录按钮(我能够成功登录)

<fbc:LoginButton x:Name="_loginButton" 
SessionStateChanged="_loginButton_SessionStateChanged" Margin="0,15" />

现在,我想 post 到 feed,所以我使用下面的代码,直接从 facebooksdk.net 站点复制用于发布:

private async void PublishStory()
{
    await _loginButton.RequestNewPermissions("publish_stream");
    var facebookClient = new Facebook.FacebookClient(_loginButton.CurrentSession.AccessToken);
    var postParams = new
        {
            name = this.PostTitle,
            message = _txtStatus.Text.Trim(),
            description = this.PostDescription.Replace(@"""", "'"),
            link = this.PostUrl,
            picture = this.PostImageUrl,
            actions = new {
                name = this.PostAppName,
                link = this.PostAppUrl,
            },
        };
    try
    {
        dynamic fbPostTaskResult = await facebookClient.PostTaskAsync("/me/feed", postParams);
        var result = (IDictionary<string, object>)fbPostTaskResult;

        var successMessageDialog = new Windows.UI.Popups.MessageDialog("Posted Open Graph Action, id: " + (string)result["id"]);
        await successMessageDialog.ShowAsync();
    }
    catch (Exception ex)
    {
        ShowLoginUI();
    }
}

我 运行 遇到的问题是 _loginButton.CurrentSession 无法解决。它是否已从此版本的 Facebook.Client 中删除,如果是,现在执行此操作的正确方法是什么?

经过反复试验,我相信我找到了答案。 AccessToken 现在可以通过 Session.ActiveSession.CurrentAccessTokenData.AccessToken 访问,这意味着代码行应该是:

var token = Session.ActiveSession.CurrentAccessTokenData.AccessToken;
var fbClient = new Facebook.FacebookClient(token);