在Facebook中添加链接帖子时,会自动添加一个漂亮的描述(包含链接页面中的文本片段)和缩略图。
有没有办法使用Facebook API自动执行此操作?我倾向于认为没有,因为IFTTT添加了一个使用Facebook API的流行Web应用程序do not contain descriptions。我不清楚这是否是Facebook API的限制,以及是否有任何解决方法。
答案 0 :(得分:2)
是的,这是可能的。您可以使用图表Api方法/profile_id/feed
。该方法接收参数消息,图片,链接,名称,标题,描述,来源,地点和标签。 Facebook以“漂亮的摘要和缩略图”组织参数。
您可以在链接http://developers.facebook.com/docs/reference/api/
中的发布部分获取更多信息在c#中:
public static bool Share(string oauth_token, string message, string name, string link, string picture)
{
try
{
string url =
"https://graph.facebook.com/me/feed" +
"?access_token=" + oauth_token;
StringBuilder post = new StringBuilder();
post.AppendFormat("message={0}", HttpUtility.UrlEncode(message));
post.AppendFormat("&name={0}", HttpUtility.UrlEncode(name));
post.AppendFormat("&link={0}", HttpUtility.UrlEncode(link));
post.AppendFormat("&picture={0}", HttpUtility.UrlEncode(picture));
string result = Post(url, post.ToString());
}
catch (Exception)
{
return false;
}
return true;
}
private static string Post(string url, string post)
{
WebRequest webRequest = WebRequest.Create(url);
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.Method = "POST";
byte[] bytes = Encoding.ASCII.GetBytes(post);
webRequest.ContentLength = bytes.Length;
Stream stream = webRequest.GetRequestStream();
stream.Write(bytes, 0, bytes.Length);
stream.Close();
WebResponse webResponse = webRequest.GetResponse();
StreamReader streamReader = new StreamReader(webResponse.GetResponseStream());
return streamReader.ReadToEnd();
}
<强>更新强>
打开图协议元标记:http://developers.facebook.com/docs/opengraphprotocol/