0

在 Facebook 中添加链接帖子时,漂亮的描述(包含来自链接页面的文本片段)和缩略图会自动添加到帖子中。

有没有办法使用 Facebook API 自动执行此操作?我倾向于认为没有,因为使用 Facebook API 的流行网络应用程序IFTTT添加的帖子不包含描述。我不清楚这是否是 Facebook API 的限制,以及是否有任何解决方法。

4

1 回答 1

2

是的,这是可能的。您可以使用 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/

于 2012-09-06T17:29:34.613 回答