来自ASP.NET的Facebook C#SDK粉丝页面发布

时间:2012-08-20 22:52:45

标签: c# asp.net facebook sdk facebook-c#-sdk

我知道这已被多次询问过,如果答案很容易获得,我很抱歉,但我找不到答案。

我正在使用VS 2010和最新版本的Facebook C#SDK。我使用VS.的包管理器中的“Install-Package Facebook”命令安装它。

在花了不少时间研究如何使用SDK之后,我通过Facebook Javascript SDK对FB进行身份验证。实际上我按照Getting Started Tutorial中的步骤进行操作。在我的努力中取得了相当大的成功。我现在在我的aspx页面上有一个“登录”按钮,它会打开登录窗口并允许我通过它进行身份验证。我还能够将访问令牌存储在会话变量中并将其用于使用。

我已经通过在我使用访问令牌创建的FacebookClient对象上执行获取来测试了这一点,并且能够检索有关粉丝页面的数据。

所以说了这一切,为了让你知道我取得了一些成功。我准备开始通过我的网站发布到粉丝页面,并找到了这个链接Simplest way to post to a facebook fan page's wall with C#!

我想 - 太好了!这正是我需要的。复制此帖子中的代码后,我现在在ExpandoObject上收到“未知类型”。

为方便起见,这里是我复制的代码。

if (Session["AccessToken"] != null)
{
    var accessToken = Session["AccessToken"].ToString();

    dynamic messagePost = new ExpandoObject();
    messagePost.access_token = "[YOUR_ACCESS_TOKEN]";
    messagePost.picture = "[A_PICTURE]";
    messagePost.link = "[SOME_LINK]";
    messagePost.name = "[SOME_NAME]";
    messagePost.caption = "{*actor*} " + "[YOUR_MESSAGE]"; //<---{*actor*} is the user (i.e.: Aaron)
    messagePost.description = "[SOME_DESCRIPTION]";

    FacebookClient app = new FacebookClient(accessToken);

    app.Post("/" + [PAGE ID] + "/feed", messagePost);
}

所以我的问题实际上是关于ExpandoObject。此对象仍在SDK中吗?如果是这样,我错过了什么,如果没有,我应该怎么做这个电话?

虽然我在问,在请求访问令牌时我还需要做些什么才能获得在粉丝页面上发布的适当权限?如上所述,我按照Facebook C# SDK Site上的“入门”页面获取了访问令牌。我问的原因是因为在我的研究过程中,我一直在讨论确保你拥有适当的权限,以便在Facebook上做不同的事情。

非常感谢任何帮助, 丹

1 个答案:

答案 0 :(得分:2)

我想我只需要在StackOverflow中再做一点寻找答案。我会继续在这里发布给其他可能遇到同样问题的人。

事实证明,使用最新版本的Facebook C#SDK,发布任何内容的方法是使用FacebookClient对象,然后在该对象上调用 Post 方法。实际上很容易。这是我使用的代码。

if (Session["AccessToken"] != null)
{
    var accessToken = Session["AccessToken"].ToString();
    FacebookClient app = new FacebookClient(accessToken);

    dynamic result = app.Post("/[ID]/feed", new Dictionary<string, object> { { "message", "This Post was made from my website" } });
}

Session["AccessToken"]是我的身份验证令牌,是从用户登录网页上的Facebook获取的,而[ID]是我的粉丝页面的ID。