想要自定义标题/图像/描述在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”数组中。
一探究竟。
一个星期前我也有同样的问题。
首先我注意到你的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大小的限制。