介绍

这个Open Graph协议允许任何网页成为社交图中的富对象。例如,这在Facebook上用于允许任何网页都具有与脸书上任何其他对象相同的功能。

虽然存在许多不同的技术和模式,并且可以组合使用总之,没有一种技术能够提供足够的信息来丰富地表示社交图中的任何网页。Open Graph协议构建在这些现有技术的基础上,为开发人员提供了一件事实施。开发人员的简单性是Open Graph协议的一个关键目标已告知许多技术设计决策.


基本元数据

要将网页转换为图形对象,您需要将基本元数据添加到您的页面。我们将协议的初始版本建立在资源描述框架这意味着你将额外的<元>中的标记<头部>您的网页。需要四个每个页面的属性为:

例如,以下是的OpenGraph协议标记摇滚乐国际货币数据库:

<html prefix=“og:https://ogp.me/ns#"><头部>岩石(1996)<meta property=“og:title”content=“The Rock”/><meta property=“og:type”content=“video.movie”/><meta property=“og:url”content=“https://www.imdb.com/title/tt0117500/" /><meta property=“og:image”content=“https://ia.media-imdb.com/images/rock.jpg网址" />...</头>...</html>

可选元数据

以下属性对于任何对象都是可选的,通常是建议:

例如(换行仅用于显示目的):

<meta property=“og:audio”content=“https://example.com/bond/theme.mp3" /><meta-property=“og:description”content=“肖恩·康纳利发现名利是温文尔雅、老练的英国特工詹姆斯·邦德。" /><meta property=“og:determiner”content=“the”/><meta property=“og:locale”content=“en_GB”/><meta property=“og:locale:alternate”content=“fr_fr”/><meta property=“og:locale:alternate”content=“es_es”/><meta property=“og:site_name”content=“IMDb”/><meta property=“og:video”content=“https://example.com/bond/trailer.swf(网址:https://example.com/bond/trailer.swf)" />

RDF模式(在乌龟) 可以在以下位置找到ogp.me/ns公司.


结构化属性

某些属性可以附加额外的元数据。这些元数据的指定方式与其他元数据相同财产内容,但是财产会有额外的:.

这个og:图像属性具有一些可选的结构化属性:

完整图像示例:

<meta property=“og:image”content=“https://example.com/ogp.jpg网址" /><meta property=“og:image:secure_url”content=“https://secure.example.com/ogp.jpg网址" /><meta property=“og:image:type”content=“image/jpeg”/><meta property=“og:image:width”content=“400”/><meta property=“og:image:height”content=“300”/><meta property=“og:image:alt”content=“一个有光泽的红苹果,咬了一口”/>

这个og:视频标记具有与相同的标记og:图像。以下是一个示例:

<meta property=“og:video”content=“https://example.com/movie.swf" /><meta property=“og:video:secure_url”content=“https://secure.example.com/movie.swf" /><meta property=“og:video:type”content=“application/x-shockwave-flash”/><meta property=“og:video:width”content=“400”/><meta property=“og:video:height”content=“300”/>

这个og:音频标记只有前3个可用属性(因为大小对声音没有意义):

<meta property=“og:audio”content=“https://example.com/sound.mp3" /><meta property=“og:audio:secure_url”content=“https://secure.example.com/sound.mp3" /><meta property=“og:audio:type”content=“audio/mpeg”/>

阵列

如果标记可以有多个值,只需将同一个标记的多个版本<元>标签。给出了第一个标签(从上到下)冲突期间的偏好。

<meta property=“og:image”content=“https://example.com/rock.jpg网址" /><meta property=“og:image”content=“https://example.com/rock2.jpg" />

在声明结构化属性的根标记后放置它们。无论何时解析另一个根元素,即结构化属性被认为已完成,另一个已开始。

例如:

<meta property=“og:image”content=“https://example.com/rock.jpg网址" /><meta property=“og:image:width”content=“300”/><meta property=“og:image:height”content=“300”/><meta property=“og:image”content=“https://example.com/rock2.jpg" /><meta property=“og:image”content=“https://example.com/rock3.jpg" /><meta property=“og:image:height”content=“1000”/>

表示此页面上有3个图像,第一个图像为300x300像素,中间一个有未指定的尺寸,最后一个是1000像素高。


对象类型

为了在图中表示对象,您需要指定其类型。这是使用og:类型属性:

<meta property=“og:type”content=“website”/>

当社区同意某个类型的架构时,它将被添加到列表中全局类型的。类型系统中的所有其他对象都是居里表单的

<head prefix=“my_namespace:https://example.com/ns#"><meta property=“og:type”content=“my_namespace:my_type”/>

全局类型分为垂直类型。每个垂直方向都有自己的自己的命名空间。这个og:类型命名空间的值总是以名称空间,然后是句点。这是为了减少与用户定义的命名空间类型的混淆里面有冒号。

音乐

og:类型值:

音乐.song

音乐.专辑

音乐.播放列表

音乐.电台

视频

og:类型值:

视频.电影

视频编码

视频.tv _放映

一个多集的电视节目。元数据与相同视频.电影.

视频.其他

不属于任何其他类别的视频。元数据与相同视频.电影.

无垂直线

这些是全局定义的对象,不适合垂直方向,但然而,它们被广泛使用并达成一致。

og:类型值:

文章-命名空间URI:https://ogp.me/ns/article网站#

-命名空间URI:https://ogp.me/ns/book#

轮廓-命名空间URI:https://ogp.me/ns/profile网站#

网站-命名空间URI:https://ogp.me/ns/网站#

除了基本属性外,没有其他属性。任何未标记的网页都应视为og:类型网站。


类型

在Open Graph协议中定义属性时使用以下类型。

类型 描述 直接常量
布尔值 布尔值表示true或false值 真,假,1,0
日期时间 DateTime表示由日期组成的时间值(年、月、日)和可选时间组件(小时、分钟) ISO 8601标准
枚举 由常量字符串值的有界集组成的类型(枚举成员)。枚举成员的字符串值
浮子 64位有符号浮点数 符合以下格式的所有文字:

1.234
-1.234
1.2电子3
-1.2电子3
第7E-10页
整数 32位有符号整数。在许多语言中,32位以上的整数变为浮点数,所以我们限制OpenGraph协议以便于多语言使用。 符合以下格式的所有文字:

1234
-123
字符串 Unicode字符序列 由不带转义符的Unicode字符组成的所有文字
统一资源定位地址 标识Internet资源的Unicode字符序列。使用https://或https://协议的所有有效URL

讨论和支持

您可以在中讨论开放图协议Facebook群组或上的开发人员邮件列表.Facebook目前正在使用它(请参阅他们的文档), 谷歌(请参阅他们的文档)、和混合(mixi).IMDb、微软、NHL、Posterous、烂番茄、,《时代》、《Yelp》和许多其他作品。


启动位置

开源社区已经开发了许多解析器和发布工具。如果你也建立了一些很棒的东西,请让Facebook群知道!