在Facebook页面上发布而无需登录(C#)

时间:2013-06-30 12:12:35

标签: asp.net facebook facebook-graph-api

我正在使用以下代码(已在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);
    }

1 个答案:

答案 0 :(得分:3)

是的,这是可能的。您需要使用页面访问令牌。

Generating a Page Access Token.

收到页面访问令牌后,您可以将其存储为永不过期(如果通过长期用户令牌/服务器端用户令牌生成)。最后使用该令牌初始化您的FacebookClient

C#特定教程是here。该文章非常陈旧,并且使用了已弃用的offline_access权限,但至少您将获得正确的逻辑。