我正在开发一个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帐户设置,我看到我的应用程序列出了允许发布到我的墙上。我还尝试通过Graph API资源管理器向我的墙发布消息,我得到的结果相同。我得到了一个ID作为回报,但当我检查我的Facebook帐户时,我什么都没看到。在这几天。任何帮助将不胜感激。
提前致谢。
[编辑] 我想知道我的应用程序生成的access_token是否有问题。正如我在帖子中提到的,使用此access_token,我使用Graph 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>
答案 0 :(得分:1)
基本上你需要在你的帖子参数中添加一个额外的参数。
args["access_token"] = account.access_token;
这是特定页面的标记。
我不会重复代码,请按照此处举例:Post On Facebook Page As Page Not As Admin User Using Facebook C# SDK
(第二个答案)
答案 1 :(得分:1)
您是否在操作方法中向Facebook请求了正确的应用权限?
尝试:[CanvasAuthorize(Permissions = "user_location, publish_stream, email")]
答案 2 :(得分:0)
答案 3 :(得分:0)
只需做一个小改动,你的代码就可以了。你必须将用户身份验证令牌传递给构造函数,如...
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/它非常好,所以如果你不使用它,我会推荐它