我正在使用以下代码(已在Stackoverflow上的某个位置发布)在Facebook页面的墙上发布。
它运行正常,但如果我没有登录则会打开Facebook登录窗口。 是否可以代表特定Facebook页面的管理员帐户执行代码?
protected void Page_Load(object sender, EventArgs e)
{
string app_id = "123410186463705";
string app_secret = "1234ecd9bea862197372de656eb3d7b";
// using Facebook SDK for .NET
var fb = new FacebookClient();
dynamic result = fb.Get( "oauth/access_token", new
{
client_id = app_id,
client_secret = app_secret,
grant_type = "client_credentials",
scope = "manage_pages,offline_access,publish_stream",
redirect_uri = Request.Url.AbsoluteUri
} );
var app_token = result.access_token;
var client = new FacebookClient(app_token);
dynamic parameters = new ExpandoObject();
parameters.message = "Check out this funny article";
parameters.link = "http://www.natiska.com/article.html";
parameters.picture = "http://www.natiska.com/dav.png";
parameters.name = "Article Title";
parameters.caption = "Caption for the link";
//446533181408238 is my fan page
client.Post("/446533181408238/feed", parameters);
}
答案 0 :(得分:3)
是的,这是可能的。您需要使用页面访问令牌。
Generating a Page Access Token.
收到页面访问令牌后,您可以将其存储为永不过期(如果通过长期用户令牌/服务器端用户令牌生成)。最后使用该令牌初始化您的FacebookClient
。
C#特定教程是here。该文章非常陈旧,并且使用了已弃用的offline_access
权限,但至少您将获得正确的逻辑。