1

我知道这已经被问过很多次了,如果答案很容易获得,我很抱歉,但我一直无法找到答案。

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

在花了相当多的时间研究如何使用 SDK 之后,我正在通过 Facebook Javascript SDK 使用 FB 进行身份验证。实际上,我按照入门教程中的步骤进行操作。并且在我的努力中非常成功。我现在在我的 aspx 页面上有一个“登录”按钮,它会打开登录窗口并允许我通过它进行身份验证。我还能够将我的访问令牌存储在会话变量中并使用它。

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

说了这么多,是为了让你知道我已经取得了一些成功。我准备开始通过我的网站发布到粉丝页面,并找到了这个链接使用 C# 发布到 facebook 粉丝页面墙上的最简单方法!

我想——太好了!这正是我所需要的。从这篇文章复制代码后,我现在在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 站点上的入门页面获取我的访问令牌。我问的原因是因为在我的研究过程中,我遇到过不同的帖子,它们都在谈论确保你拥有适当的权限以便在 Facebook 上做不同的事情。

非常感谢任何帮助,丹

4

1 回答 1

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。

于 2012-08-21T15:31:39.423 回答