C#Facebook app / post on site

时间:2016-05-30 11:04:24

标签: c# facebook facebook-graph-api oauth facebook-apps

我对Facebook应用程序非常新,并阅读了几个创建它们的线程,但我遇到了一些问题。 首先我要做的是:我想创建一个能够在我管理的Facebook页面上发布图片,文本和链接的Web应用程序。

我使用了Facebook C#SDK:here!

我有什么:

string facebookPageId = "<my page id>";

string app_id = "<my app id>";
string app_secret = "<my app secret>";
string scope = "publish_stream,manage_pages";

var fb = new FacebookClient();

dynamic res = fb.Get("oauth/access_token", new
{
     client_id = app_id,
     client_secret = app_secret,
     grant_type = "client_credentials"
});

var access_token = res.access_token;

dynamic messagePost = new ExpandoObject();
messagePost.access_token = access_token;
messagePost.link = "http://www.test.at";
messagePost.name = "Testbot";
messagePost.caption = "{*actor*} " + "hello this is a test"; 
messagePost.description = "[SOME_DESCRIPTION]";

FacebookClient app = new FacebookClient(access_token);
app.AppId = app_id;
app.AppSecret = app_secret;

try
{
     var result = app.Post("/hrechttest" + "/feed", messagePost);
}
catch (Exception e)
{

}

代码运行没有任何异常但在输出窗口中我得到以下内容:

Exception thrown: 'Facebook.FacebookOAuthException' in Facebook.dll

下一个问题是: 据我所知,你必须将你的Facebook应用程序与你的Facebook页面链接,但是当我想这样做时,我无法选择页面: enter image description here

那么我做错了什么或错过了什么?

1 个答案:

答案 0 :(得分:0)

publish_stream已弃用多年,publish_pages是发布到网页(作为网页)的正确权限。

API参考:https://developers.facebook.com/docs/graph-api/reference/page/feed#publish

确保使用的是页面令牌,而不是用户令牌:

文档中也解释了如何创建页面应用程序:https://developers.facebook.com/docs/pages/tabs