我搜索了很多这个问题的答案,但我找不到任何有用的资源。我正在墙上发帖“ 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);
}
感谢。
答案 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方法中。 我希望我的帖子可以帮助那些遇到麻烦的人。