我的网站上的文件有以下网址:
http://www.foo.com/download/1
,使用force_download函数下载文件
我被要求为这些文件提供类似的按钮,这些按钮显示在网站的某个网页上的html表格中。
所以,使用facebook like button tool我创建了以下按钮:
<div class="fb-like" data-href="http://www.foo.com/download/1" data-send="false" data-width="450" data-show-faces="false"></div>
但是,因为这是到文件的直接链接,所以没有接收到正确的开放图元数据。描述是:“%PDF-1.3% ãÏÓ101010 obj ..”
所以我的问题是如何为我的下载链接提供开放图表元数据?例如:
<meta property="og:type" content="website" />
<meta property="og:url" content="http://foo.com/download/1" />
<meta property="og:title" content="Download 1" />
<meta property="og:image" content="bar.png" />
<meta property="og:description" content="File description" />
答案 0 :(得分:1)
对于您下载文件本身的网址,您不能,因为它(可能)不是html页面,即使它是,您也不希望使用自己的元数据更改文件的内容。
你可以尝试的是对下载文件的客户端和facebook的抓取工具使用的URL使用某种重定向,当然你也需要一个真实下载的URL。
在您为用户和用户发送的视图中:
<!-- meta tags -->
<meta property="og:type" content="website" />
<meta property="og:url" content="http://foo.com/download/1" />
<!-- .... -->
<body>
<script>
// imaginary real download url url
window.location = '<?php site_url('download/real_download/'.$download_id);?>';
</script>
</body>
Facebook似乎也不了解刷新元标记,因此您可以编写并避免使用javascript:
<meta http-equiv="refresh" content="1;URL='<?php site_url('...')?>'">
免责声明:我没有找到任何来自Facebook的文档来描述他们的抓取工具理解的内容,因此无法保证其中任何一个都能继续工作。我自己在类似的情况下使用了一年的javascript解决方案。