有没有人有一个明确的方法来发布帖子到用户的墙上,只使用.NET框架或Silverlight?
人们的尝试产生的问题在这里被问到了,但我找不到一个完整的、清晰的Graph API规范的解释,也找不到一个使用WebClient或来自System.Net的类似类的简单示例。
我是否必须将所有提要项属性作为查询字符串中的参数发送?我是否可以构造一个JSON对象来表示提要项并发送它(将访问令牌作为唯一的参数)?
我希望它不会超过5行代码片段,否则,请在FB文档中给我指出规范。
谢谢你的帮忙,
卢克
发布于 2012-05-09 01:51:32
这是从我们如何张贴到用户的墙上。我们将post的数据放在请求体中(我认为我们发现这比在请求的查询部分包含所有参数更可靠),它具有与URL编码的查询字符串相同的格式。
我同意,文档在解释如何与大量资源交互方面相当糟糕。通常,我会查看文档中有关字段和连接的信息,然后使用Graph API Explorer来理解请求需要如何构造。一旦我把它写下来,它就很容易在C#或其他什么地方实现。我唯一使用的SDK是Facebook的Javascript SDK。我发现其他的(尤其是第三方)比我自己的更复杂,更有缺陷,或者更坏。
private void PostStatus (string accessToken, string userId)
{
UriBuilder address = new UriBuilder ();
address.Scheme = "https";
address.Host = "graph.facebook.com";
address.Path = userId + "/feed";
address.Query = "access_token=" + accessToken;
StringBuilder data = new StringBuilder ();
data.Append ("caption=" + HttpUtility.UrlEncodeUnicode ("Set by app to describe the app."));
data.Append ("&link=" + HttpUtility.UrlEncodeUnicode ("http://example.com/some_resource_to_go_to_when_clicked"));
data.Append ("&description=" + HttpUtility.UrlEncodeUnicode ("Message set by user."));
data.Append ("&name=" + HttpUtility.UrlEncodeUnicode ("App. name"));
data.Append ("&picture=" + HttpUtility.UrlEncodeUnicode ("http://example.com/image.jpg"));
WebClient client = new WebClient ();
string response = client.UploadString (address.ToString (), data.ToString ());
}发布于 2012-05-09 01:33:51
我对.net或silverlight了解不多,但facebook api可以处理简单的http请求。所有不同的sdks (除了javascript sdks)主要只是http请求的包装器,具有将访问令牌添加到所有请求的“功能”。
并非所有请求中的参数都以querystring的形式发送,在某些POST请求中,您需要在请求体(application/x-www-form-urlencoded)中发送它们,并且您不能将数据作为json发送。
如果C# sdk不是您喜欢的,您可以简单地为您的确切需求创建一个。正如我所写的,您只需要包装请求,您当然可以有一个方法,该方法将获得一个json作为参数,并将其分解为与请求一起发送的不同参数。
我会给你指出facebook的文档,但你没有问任何具体的东西,所以除了landing page之外没有什么可以给你指出的。
https://stackoverflow.com/questions/10502679
复制相似问题