想要自定义标题/图像/描述在Facebook的共享链接从一个Flash应用程序

可能重复:
Facebook Sharer如何select图片?

我正在制作一个闪光的应用程序,以不同的速度驾驶时显示pottsial交通伤害。 我希望用户能够在Facebook上分享这些信息。 然而,这要求我可以自定义以某种方式出现在Facebook上的文字。

我正在打开一个空白窗口(从Flash应用程序本身)打开的url。 我指定了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,标题和描述可以定制,也可以指定一个屏幕截图。 但是,如果我不发布瑞士法郎,这似乎被忽略。

我知道我可以在html页面上使用meta标签来指定缩略图,标题和描述,但是这些内容中的一部分必须基于flash应用程序中的计算。

2016更新

使用共享debugging器来找出你的问题是什么。

确保您遵循Facebook 共享最佳实践 。

确保您正确使用Open Graph Markup 。

原始答复

我同意这里已经说过的内容,但是在Facebook开发者网站上的文档中 ,您可能需要使用以下元标记。

<meta property="og:title" content="title" /> <meta property="og:description" content="description" /> <meta property="og:image" content="thumbnail_image" /> 

如果你无法用meta标签完成你的目标,并且你需要一个URLembedded版本,请参阅下面的 @ Lelis718的答案 。

我认为这个网站有解决scheme,我现在会testing它。 它看起来像Facebook已经改变了share.php的参数,所以为了自定义共享窗口的文本和图像,你必须把参数放在一个“p”数组中。

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

一探究竟。

一个星期前我也有同样的问题。

首先我注意到你的URL在参数string前有一个&符号,但是可能需要有一个问号来代替开始参数string,然后是每个附加参数之间的和号。

现在,您确实需要转义您的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); 

现在,您需要创build上面链接的superDuperSharingPage.php,它应该提供您所需的dynamic标题,描述和图像内容。 像这样的东西应该足够了:

 <?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> 

让我知道如果这对你有用,这基本上是为我做的:)

我其实也有类似的问题。 我有一个多个单选button的页面; 每个button将通过改变后的JavaScript设置页面的标题和描述元标签。

例如,如果用户select第一个button,元标签将会说:

 <meta name="title" content="First Title"> <meta name="description" content="First Description"> 

如果用户select第二个button,这将元标记更改为:

 <meta name="title" content="Second Title"> <meta name="description" content="Second Description"> 

… 等等。 我已经确认,通过Firebug的代码工作正常(即我可以看到,这两个标签被正确更改)。

显然, Facebook的分享只是拉入标题和描述元标签,可在页面加载。 页面加载后这两个标签的更改完全被忽略。

有没有人有如何解决这个问题的想法? 也就是说,强制Facebook获得页面加载后发生更改的最新值。

我有一个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'; } 

并传递variables的URL格式的特定页面的标题和元素desciption我想从我的joomla模块分享…

a name="fb_share" share_url="MYURL/sharer.php?title=TITLE&desc=DESC"

希望这可以帮助…

你不能,它只是不支持它。

我不得不问,为什么这些计算需要发生只有在Flash应用程序内?

您必须导航到与您从Flash应用获取的元数据明确相关的url。 否则,Flash应用程序将如何知道取决于您所访问的URL的值。

选项是:

  • 在页面上计算:在提供页面时,您需要在服务器上执行相同的计算,并在页面元数据上发送标题等。
  • 将查询string中的元数据发送到您的网站 :如果您确实必须将计算closures在服务器之外,另一种方法是在用户点击的URL中明确设置元数据以从Facebook访问您的网站。 处理页面时,只需将其复制回元数据部分(不要忘记进行适当的编码)。 由于url大小的限制,这显然是有限的。
  • 请将查询string中的计算结果发送到您的网站:如果这些计算结果只是为您提供了元数据中使用的几个数字,那么您可以在URL的查询string中包含这些数字,以便用户点击返回到您的网站。 这是更可能不会给你的URL大小的问题。

回覆

为什么这是upvoted? 这是不对的。 你可以 – 它支持添加自定义标题,描述和图像到你的共享。 我一直这样做。 – Dustin Fineout 3小时前

OP非常清楚地表明,他已经知道你可以从页面服务,但要直接将值传递给Facebook(而不是通过目标页面)。

此外,请注意,我提供了3个不同的选项来解决这个问题,其中之一就是您稍后发布的答案。 你的select不是OP如何去做,它只是一个解决方法,因为facebook的限制。

最后,就像我一样,你应该提到特定的解决scheme是有缺陷的,因为你可以轻松地达到URL大小的限制。