Как установить заголовок, изображение и описание на стене из комментариев на Facebook - PullRequest
0 голосов
/ 17 июля 2011

Я создаю приложение Facebook iFrame, которое использует комментарии в Facebook.Когда пользователь оставляет комментарий, действие по умолчанию заключается в том, что этот комментарий будет опубликован на его стене.Сообщение на стене - это что-то вроде

UserX commented on example.com
# the comment text goes here

http://example.com
apps.facebook.com

. Вы должны иметь возможность включить изображение, описание и установить ссылку в качестве заголовка страницы (где написано * 1005.* выше apps.facebook.com), но мне не повезло заставить это работать.

Я думал, что это будет захватывать информацию из моих мета-тегов (при условии, что они содержат соответствующие теги 'og'), но это не работает.Также я не могу определить значения для заголовка, URL, изображения и т. Д. Таким же образом, как вы можете для обычных сообщений на стене.

У кого-нибудь есть какие-либо идеи, как это работает ??

РЕДАКТИРОВАТЬ:

Вот мета-теги, которые я в настоящее время использую.

<meta property="og:title" content="USERNAME'S PAGE" /> 
<meta property="og:type" content="website" /> 
<meta property="og:url" content="http://example.com"/> 
<meta property="og:image" content="http://example.com/images/wall-post.png" /> 
<meta property="og:description" content="Some description goes here." />

Ответы [ 3 ]

2 голосов
/ 17 июля 2011

Используйте URL Linter для отладки http://developers.facebook.com/tools/lint/

Убедитесь, что все метатеги верны, и если вы внесли какие-то изменения, потребуется некоторое время для обновления Facebook, и вот пример, это рабочая версия:

<!doctype html>
<html xmlns:og="http://ogp.me/ns#"
      xmlns:fb="https://www.facebook.com/2008/fbml" lang="en">
<head>
  <meta charset="utf-8">
  <title>Facebook Comment Box Sample</title>
    <meta property="og:title" content="YOUR-POST-TITLE"/>
    <meta property="og:type" content="website"/>
    <meta property="og:url" content="http://YOUR-SITE-URL"/>
    <meta property="og:image" content="http://YOUR-IMAGE-URL"/>
    <meta property="og:site_name" content="YOUR-SITE-TITLE"/>
    <meta property="og:description" content="YOUR-DESCRIPTION"/>
    <meta property="fb:admins" content="YOUR-USER-ID"/>
</head>
<body>
<h1>Facebook Comment Box:</h1>
<div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script>
<fb:comments href="http://YOUR-SITE-URL" num_posts="10" width="500"></fb:comments>
</body>
</html>
1 голос
/ 19 июля 2011

ОК, после большого количества спотыканий я понял это.

Моему приложению iFrame требуется авторизация на Facebook перед доступом к приложению (как я полагаю, все приложения на Facebook).Это означает, что сканеры facebook не смогли просканировать мою домашнюю страницу и поднять мета-теги og:

. Чтобы решить эту проблему, мне сначала пришлось выяснить, как выглядит сканер facebook.Я зарегистрировал HTTP_USER_AGENT для всех запросов, а затем использовал URL-адрес Facebook Linter (http://developers.facebook.com/tools/lint/) для проверки связи с моим сайтом.

Искатель facebook идентифицирует себя как "facebookexternalhit / 1.1 (+ http://www.facebook.com/externalhit_uatext.php)"

).что я смог добавить небольшую условную логику, чтобы сканер обошел аутентификацию и получил доступ к моему сайту. Надеюсь, это поможет другим.

0 голосов
/ 02 ноября 2011

Сначала я удостоверился, что у меня установлены все мои мета-свойства, затем я просто поместил свой код в это:

if (strpos($_SERVER['HTTP_USER_AGENT'],"externalhit_uatext")<5)
   {
   }
...