如何在Facebook上发布消息给我创建的新组,而不是我自己的墙?

时间:2014-02-16 16:53:41

标签: c# facebook

这是我在自己的墙上发布消息的方式:

private string PostFacebookWall(string accessToken, string message)
        {
            var responsePost = "";
            try
            {
                var objFacebookClient = new FacebookClient(accessToken);
                var parameters = new Dictionary<string, object>();
                parameters["message"] = message;
                responsePost = objFacebookClient.Post("feed", parameters).ToString();
            }
            catch (Exception ex)
            {
                responsePost = "Facebook Posting Error Message: " + ex.Message;
            }
            return responsePost;
        }

但是现在我只想发布一个我创建的新组,而不是发布到我的墙上。我该怎么办?

编辑**

这是现在的方法:

private string PostFacebookWall(string accessToken, string message)
        {
            var responsePost = "";
            try
            {
                var objFacebookClient = new FacebookClient(accessToken);
                var parameters = new Dictionary<string, object>();
                parameters["message"] = message;
                responsePost = objFacebookClient.Post("/" + GroupId + "feed", parameters).ToString();
            }
            catch (Exception ex)
            {
                responsePost = "Facebook Posting Error Message: " + ex.Message;
            }
            return responsePost;
        }

GroupId是该组链接中包含15个数字的字符串:

https://www.facebook.com/groups/344087212396598/

但它不会在群组页面中发布任何内容。 我需要在代码中更改/添加任何内容吗? 或者我需要获得一个新的访问令牌?

在facenook开发者网站的这个应用程序中,我去了Graph Api Explorer,我现在再次点击没有获取访问令牌,我有这个屏幕:

enter image description here

我是否需要更改此选项的任何内容? 现在我的程序在我更改代码之前发布了我的walla上没有问题,但现在我想只发布到我打开的组。

编辑**

这就是我现在所做的,我去了应用权限选项,并在扩展的Prmissions选项中标记为manage_pages

然后我获得了新的访问令牌代码。 在我的代码我的程序中,我做了:

private string PostFacebookWall(string accessToken, string message)
        {
            var responsePost = "";
            try
            {
                var objFacebookClient = new FacebookClient(accessToken);
                var parameters = new Dictionary<string, object>();
                parameters["message"] = message;
                responsePost = objFacebookClient.Post("/" + GroupId + "feed", parameters).ToString();
            }
            catch (Exception ex)
            {
                responsePost = "Facebook Posting Error Message: " + ex.Message;
            }
            return responsePost;
        }

但我得到了异常错误:

FacebookOAuthException:

(OAuthException - #803)(#803)您请求的某些别名不存在:344087212396598feed

Facebook.FacebookOAuthException was caught
  HResult=-2146233088
  Message=(OAuthException - #803) (#803) Some of the aliases you requested do not exist: 344087212396598feed
  Source=Facebook
  ErrorCode=803
  ErrorSubcode=0
  ErrorType=OAuthException
  StackTrace:
       at Facebook.FacebookClient.ProcessResponse(HttpHelper httpHelper, String responseString, Type resultType, Boolean containsEtag, IList`1 batchEtags)
       at Facebook.FacebookClient.Api(HttpMethod httpMethod, String path, Object parameters, Type resultType)
       at Facebook.FacebookClient.Post(String path, Object parameters)
       at ScrollLabelTest.Form1.PostFacebookWall(String accessToken, String message) in e:\test\test\test\Form1.cs:line 352
  InnerException: 

Form1第352行是:

responsePost = objFacebookClient.Post("/" + GroupId + "feed", parameters).ToString();

如何修复异常?

1 个答案:

答案 0 :(得分:1)

您可以通过向/ GROUP_ID / Feed连接发出HTTP POST请求来创建链接,帖子或状态消息。

您必须使用publish_actions权限添加“message”和“link”参数。