如何使用post_id获取整个帖子内容而不使用FQL - .NET?

时间:2011-09-19 12:04:13

标签: c# .net facebook facebook-graph-api

我搜索了很多这个问题的答案,但我找不到任何有用的资源。我正在墙上发帖“ https://www.facebook.com/dialog/feed?app_id= {0}&amp; display = page&amp; canvas = 1&amp; redirect_uri = {1} “,工作得很好,我发布在我的墙上作为回应我在我的* redirect_uri *的查询字符串中得到一个post_id(我用对话框做帖子)。 现在我无法做到的..是用facebook图获得完整的帖子信息,不使用FQL,我发现了很多如何使用FQL Select获取它的例子..但我真的想用图表来做这个呼叫。 我在.net中做了所有这些,我在facebook grapk资源管理器上尝试过:这是确切的网址:http://developers.facebook.com/tools/explorer/266888499999433/?method=GET&path=100002843173627_116703548434417。 使用http GET方法并具有access_token我得到了我想要的答案但是从我的代码执行此操作我没有成功。如果我对http://graph.facebook.com/POST_ID进行GET我会得到一个字符串 false 的答案...如果我在查询字符串中添加?access_token = MY_ACCESSTOKEN 我得< strong>错误400错误请求。 我有一个使用这种方法的课程:

 public Facebook.JSONObject GetPostInfo(string postID)
    {
        //"&access_token=" + this.Token
        string url = "http://graph.facebook.com/" + postID ;
        string json = this.WebRequest(MyFacebookAPI.oAuthFacebook.Method.GET, url ,String.Empty);
        return Facebook.JSONObject.CreateFromString(json);
    } 

感谢。

1 个答案:

答案 0 :(得分:2)

好的..我终于找到了解决方案:

if (CanvasAuthorizer.Authorize())
        {
            var fb = new FacebookWebClient();

            dynamic parameters = new ExpandoObject();
            parameters.message = txtMessage.Text;

            try
            {
                dynamic id = fb.Post("me/feed", parameters);
                lblPostMessageResult.Text = "Message posted successfully";
                txtMessage.Text = string.Empty;

                //get post id
                IDictionary<string, object> data = new Dictionary<string, object>();
                data.Add("access_token", CanvasAuthorizer.FacebookWebRequest.AccessToken);
                dynamic thePost = fb.Get(String.Format("{0}", id.id), data);

                string post = String.Format("Post:{0} From: {1} Message: {2}", thePost.id, thePost.from.name, thePost.message);
                lblPostMessageResult.Text = Environment.NewLine + post;
            }
            catch (FacebookApiException ex)
            {
                lblPostMessageResult.Text = ex.Message;
            }
        }

第一部分使用“消息”发布帖子 第二部分我们会发布我们从帖子中找回的ID。

您需要具有扩展权限: publish_stream,read_stream 才能使其正常工作+将access_token作为参数添加到Get方法中。 我希望我的帖子可以帮助那些遇到麻烦的人。