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);
我遇到了一个看似非常简单的问题 - 我正在尝试使用 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);