我为我的网站创建了一个facebook页面和一个facebook应用程序,现在我需要在facebook SDK .NET的帮助下将消息发布到facebook页面。
这是我到目前为止所得到的:
public static bool UploadPost(string message)
{
dynamic result;
//https://developers.facebook.com/tools/explorer/
//https://developers.facebook.com/tools/access_token/
FacebookClient client = new FacebookClient("secret access token");
result = client.Get("oauth/access_token", new
{
client_id = "[Client ID number]",
client_secret = "[Client sercret",
grant_type = "client_credentials",
});
result = client.Post("[facebook app Id]/feed", new { message = "Test Message from app" });
//result.id;
result = client.Get("[facebook app Id]");
return false;
}
运行时,我在client.Post上获得:Additional information: (OAuthException - #200) (#200) The user hasn't authorized the application to perform this action
。如果我删除了client.Post行,那么每个东西都能正常工作,那么就会获取正确的数据。
我试过关注一些helps on facebook SDK .NET网站,但它仍无效。
现在的主要问题是我获得了权限异常。我希望我的Facebook应用程序具有从我的网站发布帖子到Facebook页面的权限。
答案 0 :(得分:3)
Here是向Facebook注册您的应用程序并为您的应用程序获取应用程序ID的逐步教程。
然后是权限::
private const string ExtendedPermissions = "user_about_me,read_stream,publish_stream";
这是一串权限。进一步传递它以获得在页面上发布消息的正确权限。发布使用您的标准代码发布没有FB页面。 干杯。希望能帮助到你。
答案 1 :(得分:0)
您是否想发布到[facebook app id]?
我建议发帖到“我/喂”并测试是否有效。
此外,要发布到Facebook,您必须拥有publish_stream权限
private async Task Authenticate()
{
string message = String.Empty;
try
{
session = await App.FacebookSessionClient.LoginAsync("user_about_me,read_stream,publish_actions");
App.AccessToken = session.AccessToken;
App.FacebookId = session.FacebookId;
Dispatcher.BeginInvoke(() => NavigationService.Navigate(new Uri("/Pages/LandingPage.xaml", UriKind.Relative)));
}
catch (InvalidOperationException e)
{
message = "Login failed! Exception details: " + e.Message;
MessageBox.Show(message);
}
}
应该工作:)
答案 2 :(得分:0)
以下情况应该有效。
var fb = new FacebookClient("access_token");
fb.PostCompleted += (o, e) => {
if(e.Error == null) {
var result = (IDictionary<string, object>)e.GetResultData();
var newPostId = (string)result.id;
}
};
var parameters = new Dictionary<string, object>();
parameters["message"] = "My first wall post using Facebook SDK for .NET";
fb.PostAsync("me/feed", parameters);
这是直接从the documentation。
答案 3 :(得分:0)
通过创建扩展页面令牌并使用它来发布帖子一切正常。请参阅:How to get Page Access Token by code?
我很惊讶这个简单的任务很难开始运行,并且获得的帮助很小。