1

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

1 回答 1

3

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

生成页面访问令牌。

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

AC# 的具体教程在这里。这篇文章真的很旧并且使用了已弃用的offline_access权限,但至少你会得到正确的逻辑。

于 2013-07-01T08:40:06.983 回答