我有我的页面的HTML结构,如下所示.我添加了所有元标记,但仍然无法从我的网站上抓取任何信息.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<meta http-equiv="Content-Type" content="text/html;" charset=utf-8"></meta>
<title>My Site</title>
<meta content="This is my title" property="og:title">
<meta content="This is my description" property="og:description">
<meta content="http://ia.media-imdb.com/images/rock.jpg" property="og:image">
<meta content="<MYPAGEID>" property="fb:page_id">
.......
</head>
<body>
.....
Run Code Online (Sandbox Code Playgroud)
当我在facebook调试器(https://developers.facebook.com/tools/debug)中输入URL时,我收到以下消息:
Scrape Information
Response Code 404
Critical Errors That Must Be Fixed
Bad Response Code URL returned a bad HTTP response code.
Errors that must be fixed
Missing Required Property The 'og:url' property is required, but not present.
Missing …Run Code Online (Sandbox Code Playgroud) 我正在制作一个在用户的Twitter上检索推文的应用程序.
这些Feed包含指向外部资源的链接,例如Artciles,网页或YouTube视频.
我在Twitter API中提供了这些Feed的JSON,但是没有包含og:内容的属性.而且我想抓住它们并显示到我的网站上.
比如StackOverflow的这个问题:
<meta name="og:type" content="website" />
<meta name="og:image" content="http://cdn.sstatic.net/stackoverflow/img/apple-touch-icon@2.png?v=fde65a5a78c6"/>
<meta name="og:title" content="How can I check classes that ends with?" />
<meta name="og:description" content="I have some elements such as:
&lt;div class="button 17-facebook-dashboard-check"&gt;Elem1&lt;div&gt;
&lt;div class="button 18-google-dashboard-check"&gt;Elem2&lt;div&gt;
&lt;div class="button " />
<meta name="og:url" content="https://stackoverflow.com/questions/19001883/how-can-i-check-classes-that-ends-with"/>
Run Code Online (Sandbox Code Playgroud)
我想在每条推文上捕获每个共享资源的信息.所以我觉得我会,每个鸣叫(这对我来说是一个盒子)做一个Ajax请求的客户端,下载HTML和解析它,检索og:title,og:description,og:type和og:image.
这是最好的方法吗?什么是在Javascript/Jquery中解析这些数据?
我刚刚将一个OpenGraph图像添加到我正在使用的网站,并使用FB Debugger信息检索正确的图像,但是当共享网址时,我仍然看到显示默认图像(之前没有指定的OG图像).这里有什么我想念的吗?该站点使用基于Python的自定义框架,并且图像通过来自Amazon EC2实例的gzip提供,如果这会以任何方式影响输出.
我正在解决一个问题,其中页面标题和图像没有包含在Facebook喜欢的内容中.点击OG调试器后,看起来og:facebook上没有任何元标记被访问:
这里的调试器的链接 -它说这是推断og:url和og:title其中存在的页面属性.
作为测试的问题,我直接从开发人员文档中的示例复制元标记和HTML模式,我仍然得到相同的警告.
这是生成的head标记的HTML和开头:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<title>123-ABC Butterfly Fun Carpet 3'10" x 5'5" Rectangle</title>
<meta name="description" content="Transactiv Products" />
<meta name="title" content="Transactiv" />
<meta property="fb:app_id" content="289501899130" />
<meta property="og:site_name" content="Transactiv InRecv" />
<meta property="og:url" content="http://localhost:2609/Pages/ProductSummary.aspx?OrganizationProductID=617c54a0-189a-48af-9b5e-002148210208&StoreID=a1d6bc99-9a6a-4e46-bdb4-790be4e59bd4&ProductID=d6748a89-41f4-48aa-a1c1-5c28f87cc47f&PageName=MHMTest&PageID=236549899706529" />
<meta property="og:title" content="123-ABC Butterfly Fun Carpet 3'10" x 5'5" Rectangle" />
<meta property="og:type" content="website" />
<meta property="og:description" content="" />
<meta property="og:image" content="http://transactivazureprod.blob.core.windows.net/pictureblob/831a4d4a-dbe3-44f5-9ff8-12286cdc33f5" />
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
这是一个示例网址:
http://www.motherjones.com/mojo/2012/05/reince-priebus-lgbt-workplace-discrimination
上面用于在粘贴到Facebook状态更新框时没有图像,标题或描述 - 它仍然是一个裸URL.然后我通过调试器运行它,没有发现任何问题.现在,它会在粘贴到状态更新框时显示标题,图像和说明.
为了比较,这是我尚未调试的帖子.粘贴到更新框时,它不会转换.然而,只要我或其他任何人通过调试器运行它,它就会开始引入标题(尽管这个没有图像或描述).
这可能只是一个时间问题 - FB在我们的页面上准备元数据的速度很慢 - 但我们注意到共享开始正常工作需要几个小时甚至几天.这篇文章在流量达到顶峰之后很久,所以它对我们没什么好处.
我们在4月9日左右开始看到这个.
我的问题:我们的网页有什么东西让Facebook慢慢刮掉它们吗?我错过了什么?如果有问题,为什么调试器不告诉我?看起来似乎有一个稍微更新版本的doctype尝试,但这似乎不是罪魁祸首.另外 - 是否有任何理由我不应该在发布时编写一个钩子来通过调试器运行所有内容?
我正在创建一个具有g + share按钮的页面,但我想动态更改要共享的内容的描述.自定义共享按钮我正在使用Open Graph协议的代码段.
我尝试的解决方案如下,但它无法正常工作:
<meta property="og:title" content="O Fabuloso Gerador De Lero Lero v3" />
<meta property="og:image" content="images/robot.png" />
<meta property="og:description" content="..." />
Run Code Online (Sandbox Code Playgroud)
$('meta[property="og:description"]').attr('content',text);
var shareButtons = $('div:first','section.share-buttons');
shareButtons.html('');
shareButtons
.prepend('<a href="https://twitter.com/share" class="twitter-share-button" data-text="' + text.trunc(120,true) + '" data-url="http://goo.gl/1KHFM" data-lang="pt">Tweetar</a>')
.prepend('<div class="g-plus" data-action="share" data-href="http://lerolero.miguelborges.com/t=' + new Date().getTime() + '" data-annotation="bubble"></div>');
try {
window.twttr.widgets.load();
window.gapi.plus.go();
} catch(e) {}
Run Code Online (Sandbox Code Playgroud)
但是,分享按钮中的描述内容始终是初始的.
有谁知道如何使它工作?
按钮twitte我有同样的问题,但设法解决这个问题:
shareButtons
.prepend('<a href="https://twitter.com/share" class="twitter-share-button" data-text="' + text.trunc(120,true) + '" data-url="http://goo.gl/1KHFM" data-lang="pt">Tweetar</a>');
window.twttr.widgets.load();
Run Code Online (Sandbox Code Playgroud) 从某些日子来看,我遇到了这个问题.
这是我的调试
提供的图像大于200x200像素,它具有唯一的链接,并且该页面上有任何重定向.
Linter响应是200.
当我复制并浏览fb上的页面链接时,它可以让我在3个小于200x200px的图像之间进行选择,并忽略我提供的图像.
但如果我尝试通过"喜欢按钮"或"发送按钮"分享它,它可以正常工作.
这听起来像一个fb Bug.
谢谢
根据我的测试,Facebook的抓取工具不像浏览器那样呈现客户端模板.
我想不惜一切代价避免使用Web服务器并为Open Graph对象构建HTML文件.我想通过URL动态生成元标记,但似乎Facebook无法做到这一点.
有人可以通过Facebook确认吗?我在#mobiledevcon问Open Graph的负责人,她说Facebook可以渲染像{{value}}这样的东西
我的元标记如下,它们在每个浏览器中都可以正常显示.但Facebook Open Graph Debugger只能看到原始文本,而不是内插内容.
<meta property="{{meta.property}}" content="{{meta.content}}">
Run Code Online (Sandbox Code Playgroud) 我在我的网站上托管视频内容,并使用签名网址来防止热链接.问题是当用户在Facebook上共享视频时,它只会获取当前的URL.一旦URL过期,Facebook将不会ping该页面以查看Open Graph元标记的新内容.
示例页面源显示以下内容.
<meta property="og:video" content="https://hackerbracket.s3.amazonaws.com/5370343b2e2862ad432d2b18-97423eaf1ab8690e4f91fdb725dbaf7c2a09dfd6-low.mp4?AWSAccessKeyId=AKIAIU7HRCRAOSCZTI6Q&Expires=1406058260&Signature=N43bR0ZY5I66WUVxRa7kQRm%2Bml4%3D&t=.mp4" />
Run Code Online (Sandbox Code Playgroud)
但是,刷新后内容将更改为以下内容.
<meta property="og:video" content="https://hackerbracket.s3.amazonaws.com/5370343b2e2862ad432d2b18-97423eaf1ab8690e4f91fdb725dbaf7c2a09dfd6-low.mp4?AWSAccessKeyId=AKIAIU7HRCRAOSCZTI6Q&Expires=1406058319&Signature=9SnbPIAoKTHBsZill3i8JJyvEcs%3D&t=.mp4" />
Run Code Online (Sandbox Code Playgroud)
请注意,t=.mp4因为当URL没有以MP4结束时,Facebook似乎不喜欢它,这是有史以来最奇怪的事情.
有没有解决这个问题的方法?我不希望我的视频静态可用.也许在S3中允许Facebook的HTTP推荐人?
facebook amazon-s3 amazon-web-services opengraph facebook-graph-api
我阅读了以下2个文档页面:摘要和 带有大图像的摘要卡,但我看不出有什么区别。
例:
<meta name="twitter:card" content="summary" /> <!-- or summary_large_image -->
<meta name="twitter:title" content="Small Island Developing States Photo Submission" />
<meta name="twitter:image" content="https://farm6.staticflickr.com/5510/14338202952_93595258ff_z.jpg" />
Run Code Online (Sandbox Code Playgroud)
最后两者之间的实际区别是什么?渲染看起来相同:

opengraph ×10
facebook ×5
image ×2
javascript ×2
meta ×2
amazon-s3 ×1
angularjs ×1
codeigniter ×1
google-plus ×1
html ×1
jquery ×1
mustache ×1
share ×1
sharing ×1
twitter ×1
twitter-card ×1