在 Facebook 中添加链接帖子时,漂亮的描述(包含来自链接页面的文本片段)和缩略图会自动添加到帖子中。
有没有办法使用 Facebook API 自动执行此操作?我倾向于认为没有,因为使用 Facebook API 的流行网络应用程序IFTTT添加的帖子不包含描述。我不清楚这是否是 Facebook API 的限制,以及是否有任何解决方法。
在 Facebook 中添加链接帖子时,漂亮的描述(包含来自链接页面的文本片段)和缩略图会自动添加到帖子中。
有没有办法使用 Facebook API 自动执行此操作?我倾向于认为没有,因为使用 Facebook API 的流行网络应用程序IFTTT添加的帖子不包含描述。我不清楚这是否是 Facebook API 的限制,以及是否有任何解决方法。
是的,这是可能的。您可以使用 Graph 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/