Хотите, чтобы пользовательское название/изображение/описание в 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.