Хотите, чтобы пользовательское название/изображение/описание в facebook обменивались ссылками из флеш-приложения
Возможный дубликат:
Как Facebook Sharer выбирает Изображения?
Я делаю flash-приложение, которое демонстрирует потенциальные травмы при движении на разных скоростях. Я хочу, чтобы пользователь мог поделиться этой информацией на facebook. Однако это требует, чтобы я мог настроить текст, который будет отображаться на Facebook в некотором роде.
Я создаю url, который открывается в пустое окно (из самого приложения flash). Я указываю параметры u и t, помещая генерируемое сообщение в качестве параметра t. Но это, похоже, всегда отменяется заголовком страниц. Если я опускаю тег заголовка из html-кода, используется имя файла (также переопределяя указанный заголовок).
http://www.facebook.com/sharer.php?u=http://espentokerud.com/face/addiste.html&t=test;
Я также попробовал url-кодирование URL-адреса, но безрезультатно.
http://www.facebook.com/sharer.php?u=http%3a%2f%2fespentokerud.com%2fface%2faddiste.html&t=test;
Я также пробовал использовать addthis API, но испытываю те же недостатки. Самое смешное, что если я публикую swf, название и описание можно настроить, а также можно указать скриншот. Но если я не отправляю swf, это, кажется, игнорируется.
Я знаю, что я могу использовать метатеги на странице html, чтобы указать эскиз, название и описание, но часть этого контента должна основываться на вычислениях внутри флеш-приложения.
Ответы
Ответ 1
Обновление 2016
Используйте "Отладочный отладчик" , чтобы выяснить, каковы ваши проблемы.
Убедитесь, что вы следуете Facebook "Обмен рекомендациями" .
Убедитесь, что вы правильно используете Open Graph Markup.
Оригинальный ответ
Я согласен с тем, что уже было сказано здесь, но за документацию на сайте разработчика Facebook, возможно, вы захотите использовать следующую мета теги.
<meta property="og:title" content="title" />
<meta property="og:description" content="description" />
<meta property="og:image" content="thumbnail_image" />
Если вы не можете достичь своей цели с помощью метатег, и вам нужна встроенная версия URL, см. @Lelis718 ответ ниже.
Ответ 2
Я думаю, что на этом сайте есть решение, я буду тестировать его сейчас.
Кажется, что facebook изменил параметры share.php, поэтому, чтобы настроить текст и изображения разделяемого окна, вы должны поместить параметры в массив "p".
http://www.daddydesign.com/wordpress/how-to-create-a-custom-facebook-share-button-for-your-iframe-tab/
Проверьте это.
Ответ 3
У меня была эта же проблема неделю назад.
Прежде всего, я заметил, что ваш URL-адрес имеет амперсанд, предшествующий строке параметров, но для начала строки параметров, вероятно, должен быть знак вопроса, за которым следует амперсанд между каждым дополнительным параметром.
Теперь вам нужно избегать вашего URL-адреса, а также дважды уйти от параметров URL (заголовок или другой контент, необходимый для предоставления контента в разделе "Поделиться" ), который вы передаете URL-адресу, следующим образом:
var myParams = 't=' + escape('Some title here.') + '&id=' + escape('some content ID or any other value I want to load');
var fooBar = 'http://www.facebook.com/share.php?u=' + escape('http://foobar.com/superDuperSharingPage.php?' + myParams);
Теперь вам нужно создать надстроенный superDuperSharingPage.php, который должен предоставить динамическое название, описание и контент изображения, которые вы желаете. Что-то вроде этого должно быть достаточно:
<?php
// get our URL query parameters
$title = $_GET['t'];
$id = $_GET['id'];
// maybe we want to load some content with the id I'll pretend we loaded a
// description from some database in the sky which is magically arranged thusly:
$desciption = $databaseInTheSky[$id]['description'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><?php echo $title;?></title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="title" content="<?php echo $title;?>" />
<meta name="description" content="<?php echo $desciption;?>" />
<!-- the following line redirects to wherever we want the USER to land -->
<!-- Facebook won't follow it. you may or may not actually want || need this. -->
<meta http-equiv="refresh" content="1;URL=http://foobar.com" />
</head>
<body>
<p><?php echo $desciption;?></p>
<p><img src="image_a_<?php echo $id;?>.jpg" alt="Alt tags are always a good idea." /></p>
<p><img src="image_b_<?php echo $id;?>.jpg" alt="Make the web more accessible to the blind!" /></p>
</body>
</html>
Сообщите мне, если это сработает для вас, это, по сути, что для меня сделало:)
Ответ 4
У меня действительно есть аналогичная проблема. У меня есть страница с несколькими переключателями; каждая кнопка задает метатеги заголовка и описания страницы, используя JavaScript после изменения.
Например, если пользователи выбирают первую кнопку, метатеги скажут:
<meta name="title" content="First Title">
<meta name="description" content="First Description">
Если пользователь выбирает вторую кнопку, это изменяет метатеги на:
<meta name="title" content="Second Title">
<meta name="description" content="Second Description">
... и так далее. Я подтвердил, что код работает нормально через Firebug (т.е. Я вижу, что эти два тега были правильно изменены).
По-видимому, Facebook Share только извлекает метатеги заголовка и описания, доступные при загрузке страницы. Изменения в загрузке обеих страниц тегов полностью игнорируются.
Есть ли у кого-нибудь идеи о том, как это решить? То есть, чтобы заставить Facebook получать последние значения, которые меняются после загрузки страницы.
Ответ 5
У меня есть модуль Joomla, который отображает материал... и я хочу, чтобы иметь возможность делиться этим материалом на facebook, а не с названием страницы Meta Description... поэтому мой обходной способ заключается в том, чтобы иметь секретный .php файл на сервере который выполняется, когда он обнаруживает FB
$_SERVER['HTTP_USER_AGENT']
if($_SERVER['HTTP_USER_AGENT'] != 'facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)') {
echo 'Direct Access';
} else {
echo 'FB Accessed';
}
и передать переменные с URL-адресом, который форматирует эту конкретную страницу с заголовком и мета-описанием элемента, который я хочу передать из моего модуля joomla...
a name="fb_share" share_url="MYURL/sharer.php?title=TITLE&desc=DESC"
надеюсь, что это поможет...
Ответ 6
Вы не можете, это просто не поддерживает его.
Я должен спросить, почему эти вычисления должны произойти только внутри флеш-приложения?
Вы должны перейти к URL-адресу, который явно связан с метаданными, полученными из Flash-приложения. В противном случае, как известно флеш-приложению, чтобы получить значения в зависимости от вашего URL-адреса.
Параметры:
- рассчитать на странице: При обслуживании страницы вам необходимо выполнить те же вычисления на сервере и отправить название и т.д. на метаданные страницы.
- отправить метаданные в строку запроса на ваш сайт. Если вы действительно должны убирать вычисления с сервера, альтернативным методом было бы явно установить метаданные в URL-адресе, который пользователи нажимают, чтобы добраться до ваш сайт из Facebook. При обработке страницы вы просто копируете ее в разделах метаданных (не забудьте правильно закодировать). Это явно ограничено из-за ограничений размера URL.
- отправьте результаты расчета в строку запроса на ваш сайт:, если эти вычисления просто дают вам пару чисел, которые используются в метаданных, вы можете включить именно это в строку запроса URL-адреса пользователи обращаются к вашему сайту. Это скорее не даст вам проблем с размерами URL.
re
Почему это поддерживается? Это неправильно. Вы МОЖЕТЕ - она поддерживается, чтобы добавить пользовательский заголовок, описание и изображения на свою долю. Я делаю это все время. - Dustin Fineout 3 часа назад
OP очень четко заявила, что он уже знал, что вы можете использовать это со страницы, но хотел передать значения непосредственно в facebook (а не через целевую страницу).
Кроме того, обратите внимание, что я дал 3 разных варианта для решения этой проблемы, один из которых - это то, что вы отправили позже. Ваш вариант не в том, как OP пытался это сделать, это всего лишь временное решение из-за ограничений facebook.
Наконец, как и я, вы должны упомянуть, что конкретное решение ошибочно, потому что вы можете легко ударить по ограничению размера URL.