写点什么

Facebook 推出 Graph API:语义网的未来?

  • 2010-04-26
  • 本文字数:1951 字

    阅读完需:约 6 分钟

"在我们每天所交付的所有事物背后隐藏着两大重要的主题。"关于最近在旧金山召开的 F8 会议,Facebook 的平台产品总监 Bret Taylor 在 facebook 开发者博客上这样写道。Facebook 在大会上介绍了 Open Graph 协议以及 Graph API,这是 Facebook 平台的下一步革新。

首先,Web 在朝着一个基于人员之间的连接以及他们所关注的事物的模型而演化。第二,这种基于连接的 Web 能够更好地为用户和开发者双方构建和提供价值——底层的连接图只需要被更好的映射为一种更易于使用和互操作的方式。

Facebook 为 Facebook 平台引入了三个新的部件,其中两个是 Open Graph 协议和 Graph API。该 API 提供了对人员,相册,事件等等 Facebook 对象以及这些对象之间诸如朋友,标签,分享内容等等连接之间的访问,通过一个统一而稳定 URI 来访问其表象。每个对象都可以通过 https://graph.facebook.com/ID 这样的 URL 来访问,而这里的 ID 则表示该对象在社交图当中的唯一 ID。而 facebook 对象所支持的每个连接 (CONNECTION_TYPE),可通过使用 https://graph.facebook.com/ID/CONNECTION_TYPE 这样的 URL 来查看。

下面是从 Graph API 页面摘录的一些使用标识符来访问 facebook 对象 (资源) 的 URI 的例子。它从比较高的层次演示了可以如何去使用这些 API。

Facebook 的所有对象都可以用同样的方式来访问:

页面: https://graph.facebook.com/cocacola (可口可乐页面) - 事件 https://graph.facebook.com/251906384206 (奥斯丁 Facebook 开发者车库活动)

[…]

Facebook 社交图包含的所有对象两两间都通过关系而连接起来。Bret Taylor 是可口可乐页面的粉丝,而 Bret Taylor 和 Arjun Banker 是朋友。我们在 API 中将这种关系叫做联系。你可以使用这种的 URL 结构 https://graph.facebook.com/ID/CONNECTION_TYPE 来查看对象之间的这种联系。人员和页面所支持的联系包括:

这一 URI 同时还有一个特殊的标识符me,指代当前的用户。Graph API 使用 OAuth 2.0 来进行授权的 (the 授权指南 对 Facebook 的 OAuth 2.0 实现进行了详细的说明)。

OAuth 2.0 是 OAuth 的简化版本,利用了 SSL 来进行 API 通讯,而不是依赖于复杂的 URL 签名模式和令牌交换。从高级的层面上来说,使用 OAuth 2.0 需要通过转接到 Facebook 为 Facebook 用户获得一个访问令牌。在你获得这个访问令牌之后,你可以通过将令牌包含在 Graph API 请求当中,以该用户的名义来执行授权请求:

网络上的反响普遍是积极的。在一篇名为“超媒体不再复杂”的博文中,Subbu Allamaraju 表示,

阅读 Facebook Graph API 是一种快乐。它避免了行业里许多主流厂商所提供的 Web 服务所陷入的困境。Facebook 的 API 是简单,一致并且交互连接的。这正是 web 真正的精髓所在。

他指出协议和 graph API 是如何来利用超媒体的能力并证明构建连接资源的简单表象的;在这一例子中,Facebook 对象图不需要这么复杂,比如,对于不同类型的资源,API 有些部分可以使用不同的服务来获得,而其它的一些部分则是基于 AtomPub 协议,以及 GData 或 OData 等等扩展。

Ars Technica对于这一声明表示欢迎,认为这是走向开放标准的重要一步。

Facebook 迈向开放标准以及 API 的进步,是由在过去一年加入该公司的一些关键人物所推动的。Facebook 聘用了著名的标准化人士 David Recordon,OAuth 以及 Atom Acitivity 扩展的作者之一。而去年并购中加入 Facebok 的 FriendFeed 工程师,也在 Facebook 开发平台进步的背后提供了极大的帮助。

现受雇于 Facebook 的 David Recordon 在 O’Riely Radar 上说明了为什么这些 API将会为开放 Web 带来益处,并强调他为之激动不已的那些变化;比如实时 API 等特性,对于 OAuth 2.0 的支持,以及开放者不再受 24 小时缓存的限制。他表示:

对于技术人员来说容易仅仅从技术层面去思考开放,但开放性要比这更广泛。技术的开放性意味着其它人可以使用你所使用的同样的工具来构建。而数据的开放性意味着开发者可以基于 API 来构建以前不可能实现的创新性的产品。而人员之间的开放性则意味着当所有的这些能结合起来时,能为人们带来更好的分享信息的方法。

根据 ReadWriteWeb 一篇文章的说法,这对于语义网将有可能产生深远的影响。

Facebook 的声明对我个人而言最激动人心的部分是语义化 Web 的一种可能的突破。

要了解关于如何利用这一 API 的更多细节,请查阅 开发者API 文档

附:Mark Zuckerberg 和Bret Taylor 在F8 上所作的 Keynote

查看英文原文: Facebook’s Graph API: The Future Of Semantic Web?

2010-04-26 04:084922
用户头像

发布了 133 篇内容, 共 44.7 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

Server Queue 提高 QPS

风含叶

Python kafka 后端 队列

“Plus Token”传销主犯被公诉!警惕,区块链不是“取款链”!

CECBC

1024讲话 CECBC 区块链技术 人才发展 培训

「首度揭秘」大规模HPC生产环境 IO 特征

焱融科技

sds io 高性能 存储 焱融科技

你有信息焦虑症吗?

Neco.W

学习 创业 知识体系

我们可能都误解了什么是情商

董一凡

情绪

阿里巴巴为什么让初始化集合时必须指定大小?

王磊

Java 性能

工厂模式(三)泛型工厂的概念以及示例代码

LSJ

Cassandra可调一致性的使用及原理

老任物联网杂谈

大数据 分布式 Cassandra 可调一致性

探索 Go 语言数据类型的内部实现

TuringTuring

内存模型 高效 Go 语言

Nginx 基础原理和命令行的真相

子杨

nginx 运维

Mysql常用删除方式比较

云也退

MySQL

备案问题汇总

云也退

网站 备案

卧槽,接到一个阎王的需求

码农神说

程序员

Android 通过opencv实现人脸识别,追踪

sar

android OpenCV 人脸识别

从位图到布隆过滤器

wangkx

位图 布隆过滤器

10分钟了解Flink

代码诗人

kudmp介绍和安装

唯爱

为什么你要学习 Go?

司徒公子

编程语言 谷歌Google Go 语言

一个在游戏行业摸爬滚打了十几年的人,为何我对这本书情有独钟

图灵社区

游戏开发 游戏制作 世嘉培训教材

用户故事为什么要关联开发数据?

易成研发中心

敏捷开发 开发数据

架构师训练营0期开营

刁架构

架构师

GrowingIO 大数据多维分析自动化测试实践

GrowingIO技术专栏

大数据 自动化测试 parewise

奈学干货分享:分布式CAP实践分析

奈学教育

分布式

基于 Markdown 的中文文档排版规范

Murphy

markdown 排版规范 GitHub GFM 物联网学前班

游戏夜读 | 改写图形API的意义

game1night

Weex开发:页面跳转以及Android端多应用选择窗口的处理

码上生长

android Vue 大前端 跨平台 Weex

2020智源-京东多模态对话挑战赛开战 产学研联合推动AI技术发展

DT极客

幂等问题及解决方案

Joker

幂等 解决方案

神经网络中为什么不能将权重初始值设置为一样的值

wangkx

神经网络 学习

Nginx 入门及命令行操作

子杨

nginx 运维

ARTS_20200529

凌轩

Java ARTS 打卡计划

Facebook推出Graph API:语义网的未来?_SOA_Dilip Krishnan_InfoQ精选文章