kit*_*sai 12 ruby facebook fb-graph
我遇到了Facebook的图形API问题.我得到一个"'og:type'属性是必需的,但不存在." 此网址上的错误:http://thatnewjoint.com/posts/logic-driving-ms-daisy-feat-childish-gambino(以及我博客上的所有其他网址).
og:type元标记在HTML中,所以我不确定为什么Facebook没有识别它.这是他们的图表api调用返回的内容:
{
"id": "561280430667026",
"created_time": "2014-08-28T20:35:18+0000",
"is_scraped": false,
"type": "website",
"updated_time": "2014-08-28T20:35:18+0000",
"url": "http://thatnewjoint.com/posts/eminem-superman-throwback-thursdays"
}
Run Code Online (Sandbox Code Playgroud)
好像当我使用他们的api(通过考拉红宝石宝石)发布时,链接不会被刮掉?我会假设og:type错误导致了这一点,但这里是该页面的元标记:
<meta property="og:url" content="http://thatnewjoint.com/posts/eminem-superman-throwback-thursdays" />
<meta property="og:title" content="Eminem - "Superman" [Throwback Thursdays] | ThatNewJoint | Premier Hip Hop Blog" />
<meta property="og:description" content="Classic from The Eminem Show. I'll be honest - the video is very strange, but the song is great."
<meta property="og:type" content="video">
<meta property="og:image" content="http://i3.ytimg.com/vi/8kYkciD9VjU/hqdefault.jpg" />
<meta property="og:video" content="http://www.youtube.com/v/8kYkciD9VjU?version=3&autohide=1">
<meta property="og:video:type" content="application/x-shockwave-flash">
<meta property="og:video:width" content="1920">
<meta property="og:video:height" content="1080">
Run Code Online (Sandbox Code Playgroud)
编辑更多信息:
似乎如果我将URL放入FB调试器,我最初得到这个"'og:type'属性是必需的,但不存在." 错误但是如果我然后单击"获取新的刮擦信息"按钮,它将找到所有正确的信息.FB是否可能过早地试图抓取URL?好像在第一次通过时,他们只是没有正确地抓取URL,但我无法弄清楚原因.
您需要使用your-app-id(唯一的Facebook App ID)将此HTML元标记添加到HEAD.请务必更换"your-app-id":
<meta property="fb:app_id" content="your-app-id">
Run Code Online (Sandbox Code Playgroud)
要创建FB App ID,请访问:https://developers.facebook.com/apps
并将同样独特的Facebook App ID添加到Facebook JS中,并尽可能靠近HTML body标签的顶部.请务必更换"your-app-id":
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '{your-app-id}',
xfbml : true,
version : 'v2.0'
});
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
Run Code Online (Sandbox Code Playgroud)
同样要放置您的网站Facebook按钮也添加此代码.只需确保换出"你的独特页面即可":
<div class="fb-like" data-href="your-unique-page-to-be-liked" data-layout="button_count" data-action="like" data-show-faces="true" data-share="false"></div>
Run Code Online (Sandbox Code Playgroud)
最后在Facebook Developers Dashboard中将您的FB应用程序从"开发者模式"中取出并将其置于"公共"模式.
有关FB Open Graph和meta标签的更多信息,这里有2个有用的链接:1.https : //developers.facebook.com/docs/opengraph/using-objects 2. https://developers.facebook.com/docs/sharing /最佳实践
这应该够了吧.如果您需要更多帮助,请与我们联系.
我更新了这个答案,感谢kitdesai指出Facebook对他们的Graph API版本有新的要求,目前达到v2.1
| 归档时间: |
|
| 查看次数: |
27548 次 |
| 最近记录: |