Хотите собственный заголовок / изображение / описание в ссылке для публикации в facebook из приложения Flash

Возможный дубликат:
Как Facebook Sharer выбирает изображения?

Я делаю флеш-приложение, которое демонстрирует потенциальные дорожно-транспортные происшествия при движении с разной скоростью. Я хочу, чтобы пользователь мог поделиться этой информацией на facebook. Однако это требует, чтобы я мог каким-либо образом настроить текст, который будет отображаться на facebook.

Я делаю URL-адрес, который открывается в пустом окне (из самого флеш-приложения). Я указываю параметры u и t, помещая сгенерированное сообщение как параметр t. Но кажется, что это всегда перекрывается заголовком страницы. Если я опускаю тег заголовка в html-коде, используется имя файла (также переопределяющее указанный заголовок).

http://www.facebook.com/sharer.php?u=http://espentokerud.com/face/addiste.html&t=test;

Я также пробовал кодировать URL-адрес, но безрезультатно.

http://www.facebook.com/sharer.php?u=http%3a%2f%2fespentokerud.com%2fface%2faddiste.html&t=test;

Я также пробовал использовать addthis API, но испытывал те же недостатки. Самое забавное, что если я публикую swf, заголовок и описание можно настроить, а также можно указать снимок экрана. Но если я не отправляю SWF-файл, это, похоже, игнорируется.

Я знаю, что могу использовать метатеги на html-странице, чтобы указать миниатюру, заголовок и описание, но часть этого контента должна быть основана на расчетах внутри flash-приложения.


person Ezop    schedule 08.03.2010    source источник
comment
У меня также возникает эта проблема, и я был бы очень заинтересован в решении, поскольку кажется противоречащим интуиции, что он сбросил бы их после того, как вы специально указали ему параметры!   -  person stealthcopter    schedule 06.09.2010
comment
Я застрял с той же проблемой, собираюсь назначить награду   -  person Rodrigo    schedule 28.09.2010
comment
@stealthcopter, @Rodrigo вы просто не можете, вам нужны метаданные на целевой странице. Тем не менее, вы можете обойти это, проверьте мой ответ.   -  person eglasius    schedule 04.10.2010
comment
Вы получили ответ на свой вопрос?   -  person Snekse    schedule 31.05.2011
comment
Уверен, что вы больше не можете использовать & t для установки заголовка.   -  person Jack Marchetti    schedule 19.07.2011


Ответы (6)


Обновление 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.

person Snekse    schedule 04.10.2010
comment
Отлично, спасибо, что указали на изменение. Как только я смогу подтвердить, что это действительно работает, я обновлю свой код :) - person defines; 06.10.2010
comment
что, если у нас есть динамическое название и описание ?? - person Kasturi; 18.03.2011
comment
Я не пробовал, но могу представить, что вы можете просто заменить статический заголовок и описание своими динамическими значениями. - person Snekse; 21.03.2011
comment
У меня есть эти наборы, но похоже, что sharer.php не получает их. Это работает для кого-то еще? Может, дело в том, что они нажимают на кнопки «Поделиться». - person forresto; 28.04.2011
comment
@forresto - Попробуйте это stackoverflow.com/questions/2950189/ - person Snekse; 28.04.2011
comment
@forresto, этот другой SO-ответ работал на участника? - person Snekse; 29.06.2011
comment
Это работает для меня, проблема в том, что facebook кэширует контент после первого лайка (не знаю, сколько времени), поэтому попробуйте другой URL-адрес, чтобы увидеть, сработали ли ваши изменения. - person Michael; 18.07.2011
comment
@Snekse, что насчет того, что у нас есть обработка нескольких кнопок общего доступа на одной странице. Я не могу сделать - person Ankit Pandey; 01.06.2020
comment
@AnkitPandey Я думаю, что этот ответ действительно применим только к тем, кто делится URL-адресом непосредственно в Facebook. Если вы делитесь с кнопками, я думаю, вам придется предоставить некоторую информацию о действии кнопки или создать URL-адрес или что-то еще с параметрами запроса. К сожалению, я не знаю ответа на ваш вопрос. - person Snekse; 03.06.2020

Думаю, на этом сайте есть решение, сейчас попробую. Похоже, что facebook изменил параметры share.php, поэтому, чтобы настроить текст и изображения окна общего доступа, вы должны поместить параметры в массив «p».

http://www.daddydesign.com/wordpress/how-to-create-a-custom-facebook-share-button-for-your-iframe-tab/

Проверить это.

person Lelis718    schedule 08.09.2011
comment
Это именно то, что я искал. Графический API хорош для многих вещей, но для предварительного распространения некоторых пост-данных не нужны токены и авторизация приложений. - person novwhisky; 09.11.2011
comment
у меня сейчас не работает - person stoefln; 11.01.2012
comment
Это то, что я искал, структура URL-адреса, чтобы предоставить ссылку на стороннее изображение вместе со страницей, на которой оно просматривается, в качестве URL-адреса. Вот он, если кто-то еще смотрит facebook.com/sharer/ - person Dylan Valade; 10.02.2012
comment
Очень полезно. Спасибо! : D - person Aaron Gray; 27.05.2013
comment
Это больше не работает. Не могли бы вы предложить какое-нибудь альтернативное решение? - person user270014; 10.01.2014

Неделю назад у меня была такая же проблема.

Прежде всего я заметил, что ваш 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>

Дайте мне знать, если это сработает для вас, по сути, это то, что помогло мне :)

person defines    schedule 04.10.2010
comment
Большое спасибо. Эта идея двойного побега сэкономила мне много времени. - person hudolejev; 09.11.2010

На самом деле у меня похожая проблема. У меня есть страница с несколькими переключателями; каждая кнопка устанавливает метатеги заголовка и описания страницы с помощью 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 извлекает только доступные метатеги title и description. при загрузке страницы. Изменения этих двух тегов при загрузке страницы полностью игнорируются.

Есть ли у кого-нибудь идеи, как это решить? То есть заставить Facebook получать последние значения, которые меняются после загрузки страницы.

person Community    schedule 17.04.2010
comment
URL-адрес, который вы отправляете в facebook, должен включать выбранную опцию для возврата на ваш сайт. Используйте это, чтобы убедиться, что значения загружаются при загрузке страницы. См. Мой ответ, чтобы получить более четкую информацию о том, как обойти проблему. - person eglasius; 04.10.2010

У меня есть модуль Joomla, который отображает материал ... и я хочу иметь возможность делиться этим материалом на facebook, а не метаописанием заголовка страницы ... поэтому мой обходной путь - иметь секретный файл .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"

надеюсь это поможет...

person droplet    schedule 12.12.2010

Вы не можете, это просто не поддерживает.

Я должен спросить, почему эти расчеты должны выполняться только внутри флэш-приложения?

Вы должны перейти к URL-адресу, который явно относится к метаданным, которые вы получаете из флеш-приложения. В противном случае, как бы приложение Flash узнало, что нужно получить значения в зависимости от URL-адреса, который вы попали.

Варианты:

  • вычислить на странице: при обслуживании страницы вам необходимо выполнить те же вычисления на сервере и отправить заголовок и т. д. в метаданных страницы.
  • отправьте метаданные в строке запроса на свой сайт: если вам действительно необходимо сохранить вычисления за пределами сервера, альтернативным трюком будет явная установка метаданных в URL-адресе, по которому пользователи переходят на ваш сайт. Facebook. При обработке страницы вы просто копируете ее обратно в разделы метаданных (не забудьте правильно кодировать). Это явно ограничено из-за ограничений размера URL.
  • отправьте результаты вычислений в строке запроса на ваш сайт: если эти вычисления просто дают вам пару чисел, которые используются в метаданных, вы можете включить только это в строку запроса URL-адреса, по которому нажимают пользователи вернуться на ваш сайт. Скорее всего, у вас не возникнет проблем с размерами URL.

re

Почему за это проголосовали? Это не правильно. Вы МОЖЕТЕ - поддерживается добавление пользовательского заголовка, описания и изображений в вашу долю. Я делаю это все время. - Dustin Fineout 3 часа назад

OP очень четко заявил, что он уже знал, что вы можете передать это со страницы, но хотел передать значения непосредственно в facebook (а не через целевую страницу).

Кроме того, обратите внимание, что я дал 3 разных варианта решения проблемы, один из которых вы опубликовали в качестве ответа позже. Ваш вариант не в том, как OP пытался это сделать, это просто обходной путь из-за ограничений facebook.

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

person eglasius    schedule 03.10.2010
comment
Почему за это проголосовали? Это не правильно. Вы МОЖЕТЕ - поддерживается добавление пользовательского заголовка, описания и изображений в вашу долю. Я делаю это все время. - person defines; 04.10.2010
comment
@Dustin прочитал перед голосованием против;). см. мой ответ в обновлении моего ответа - person eglasius; 04.10.2010
comment
Я полностью прочитал, все они хорошие предложения, как я сказал в моем предыдущем комментарии! На самом деле каждый из них до некоторой степени показан в моем собственном ответе. Я не согласен с вашим ответом, что вы не можете, он просто не поддерживает его, что неверно и является самой первой строкой вашего ответа. - person defines; 06.10.2010
comment
Мне очень жаль, но вы снова отклоняете часть текста. OP очень четко заявил, что он уже знал, что вы можете передать это со страницы, но хотел передать значения непосредственно в facebook (а не через целевую страницу). ... так что да, вы не можете делать то, что хотел OP, наши решения - обходные пути / на самом деле не отправляют его в facebook напрямую. - person eglasius; 06.10.2010