Facebook c# SDK -发布到墙

本文关键字:-发 SDK Facebook | 更新日期: 2023-09-27 18:07:01

我正在开发一个asp.net MVC 3 Facebook应用程序,我正试图发布消息到我的墙。下面是我的代码:

FacebookWebClient client = new FacebookWebClient();
// Post to user's wall
var postparameters = new Dictionary<string, object>();
postparameters["message"] = "Hello world!";
postparameters["name"] = "This is a name";
postparameters["link"] = "http://thisisalink.com;
postparameters["description"] = "This is a description";
var result = client.Post("/me/feed", postparameters);

我可以使用client获得访问令牌。AccessToken,我假设我不需要设置它。这段代码不产生任何错误,并且我得到了一个ID。然而,当我打开我的Facebook时,我的留言板和动态消息里什么也没看到。我不确定我错过了什么。我在StackOverflow上看过相关的问题,但是我没有看到类似的报告/问题。我也试着根据我在其他帖子中看到的改变代码,但无济于事。我还检查了我的Facebook账户设置,我看到我的应用程序被允许发布到我的涂鸦墙上。我还试着通过图形API浏览器发布消息到我的墙上,我得到了同样的结果。作为回报,我得到了一个ID,但当我查看我的Facebook账户时,我什么也没看到。我已经研究了好几天了。如有任何帮助,我将不胜感激。

提前感谢。

[编辑]我想知道我的应用程序生成的access_token是否有问题。使用这个access_token,正如我在我的帖子中提到的,我使用图形API资源管理器得到相同的结果。返回了一个ID,但我的墙上没有留言。但是,如果我允许Graph API资源管理器向我的墙发布消息并使用它自己生成的access_token,我就可以使用资源管理器成功发布消息。这是FB登录按钮代码:

<div>
    <h1>Login using Facebook</h1>
    <p><fb:login-button perms="user_location, publish_stream, email"></fb:login-button></p>
</div>

Facebook c# SDK -发布到墙

基本上你需要在你的post参数中添加一个额外的参数。

args["access_token"] = account.access_token;

这是特定页面的标记。

我不会重复代码,遵循这里的例子:Post On Facebook Page As Page Not As Admin User Using Facebook c# SDK

(第二个答案)

您是否在操作方法中请求了正确的Facebook应用程序权限?

Try: [CanvasAuthorize(Permissions = "user_location, publish_stream, email")]

您是否将access_token附加到URL?请看这里的例子。这里也有文档说明(参见使用访问令牌)。

/me/feed?access_token=<access_token>

一个小的改变,你的代码对我来说工作得很好。您必须像这样将用户认证令牌传递给构造函数…

var client = new FacebookClient(accessToken);
// Post to user's wall
var postparameters = new Dictionary<string, object>();
postparameters["message"] = "Hello world!";
postparameters["name"] = "This is a name";
postparameters["link"] = "http://thisisalink.com;
postparameters["description"] = "This is a description";
var result = client.Post("/me/feed", postparameters);

这个方法适用于我,虽然我不确定你使用的是哪个facebook SDK。我用的是http://facebooksdk.net/它很好用如果你不用我建议你用