这个Open Graph协议允许任何网页成为社交图中的富对象。例如,这在Facebook上用于允许任何网页都具有与脸书上任何其他对象相同的功能。
虽然存在许多不同的技术和模式,并且可以组合使用总之,没有一种技术能够提供足够的信息来丰富地表示社交图中的任何网页。Open Graph协议构建在这些现有技术的基础上,为开发人员提供了一件事实施。开发人员的简单性是Open Graph协议的一个关键目标已告知许多技术设计决策.
要将网页转换为图形对象,您需要将基本元数据添加到您的页面。我们将协议的初始版本建立在资源描述框架这意味着你将额外的<元>
中的标记<头部>
您的网页。需要四个每个页面的属性为:
og:标题
-对象在图形中应显示的标题,例如,“岩石”。
og:类型
-类型你的对象,例如“video.movie”。取决于指定的类型,可能还需要其他属性。
og:图像
-图像URL,它应该表示图表。
og:url
-将用作其图中的永久ID,例如“https://www.imdb.com/title/tt0117500/".
例如,以下是的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>
以下属性对于任何对象都是可选的,通常是建议:
日志:音频
-此对象附带的音频文件的URL。
og:描述
-用一两句话描述你的物体。
og:限定符
-出现在此对象标题之前的单词在一个句子中。安枚举(a,an,the,“”,auto)的。如果汽车
是选择后,数据的使用者应该在“a”或“an”之间进行选择。默认值为“”(空白)。
og:区域设置
-标记这些标记的区域设置。格式的语言_错误
。默认为en_US(_US)
.
og:locale:alternate
-安阵列此页面是其他语言环境的中提供。
og:站点名称
-如果您的对象是较大网站的一部分应显示整个站点。例如,“IMDb”。
og:视频
-视频文件的URL,用于补充此对象。
例如(换行仅用于显示目的):
<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:图像
属性具有一些可选的结构化属性:
og:image:url
-与相同og:图像
.
og:image:secure_url
-如果网页需要,则使用备用urlHTTPS。
og:image:type
-A类MIME类型用于此图像。
og:image:width(图像:宽度)
-宽像素数。
og:image:高度
-高像素数。
og:image:alt
-对图像中内容的描述(不是标题)。如果页面指定了og:image,则应指定日志:图像:alt
.
完整图像示例:
<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
音乐:持续时间
-整数>=1-歌曲的长度(秒)。
音乐:专辑
-音乐.专辑 阵列-这首歌的专辑。
音乐:唱片集:光盘
-整数>=1 -这首歌在专辑的哪张光盘上。
音乐:专辑:曲目
-整数>=1 -这首歌是哪首歌。
音乐:音乐家
-轮廓 阵列-创作这首歌的音乐家。
音乐.专辑
音乐:歌曲
-音乐.歌曲-这张专辑中的歌曲。
音乐:歌曲:光盘
-整数>=1 -一样音乐:唱片集:光盘
但恰恰相反。
音乐:歌曲:曲目
-整数>=1 -一样音乐:专辑:曲目
但恰恰相反。
音乐:音乐家
-轮廓-创作这首歌的音乐家。
音乐:发布日期
-日期时间-专辑发行日期。
音乐.播放列表
音乐:歌曲
-与上的相同音乐.专辑
音乐:歌曲:光盘
音乐:歌曲:曲目
音乐:创作者
-轮廓-此播放列表的创建者。
音乐.电台
og:类型
值:
视频.电影
视频:演员
-轮廓 阵列-电影中的演员。
视频:演员:角色
-一串-他们扮演的角色。
视频:导演
-轮廓 阵列-电影导演。
视频:编写器
-轮廓 阵列-这部电影的作者。
视频:持续时间
-整数>=1 - 电影的长度(秒)。
视频:release_date
-日期时间-电影发布的日期。
视频:标记
-一串 阵列-与此电影关联的标记词。
视频编码
视频:演员
-与相同视频.电影
视频:演员:角色
视频:导演
视频:编写器
视频:持续时间
视频:release_date
视频:标记
视频:系列
-视频.tv _放映-这一集属于哪个系列。
视频.tv _放映
一个多集的电视节目。元数据与相同视频.电影.
视频.其他
不属于任何其他类别的视频。元数据与相同视频.电影.
这些是全局定义的对象,不适合垂直方向,但然而,它们被广泛使用并达成一致。
og:类型
值:
文章
-命名空间URI:https://ogp.me/ns/article网站#
文章:published_time
-日期时间-这篇文章首次发表的时候。
文章:modified_time
-日期时间-文章上次更改的时间。
文章:expiration_time
-日期时间-当文章过期后。
文章:作者
-轮廓 阵列-文章作者。
文章:部分
-一串-高级节名称。例如技术
文章:标记
-一串 阵列-与本文相关的标记词。
书
-命名空间URI:https://ogp.me/ns/book#
轮廓
-命名空间URI:https://ogp.me/ns/profile网站#
配置文件:first_name
-一串-通常由父母或自己选择给个人起的名字。
配置文件:last_name
-一串-从家庭或婚姻中继承的名字,人们通常以此来认识这个人。
配置文件:用户名
-一串-用于标识它们的唯一短字符串。
配置文件:性别
-枚举(男性、女性)-他们的性别。
网站
-命名空间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群知道!