写点什么

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:084873
用户头像

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

关注

评论

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

SpringWebFlux中WebClient怎么打印日志?

编号94530

spring 日志 WebFlux WebClient

k8s client-go源码分析 informer源码分析(3)-Reflector源码分析

良凯尔

容器 云原生 Kubernetes 集群 Client-go

一文掌握MySQL中的二进制日志,MySQL 优化学习第10天

梦想橡皮擦

5月月更

模块九作业 - 设计电商秒杀系统

smile

架构实战营

Druid连接池源码阅读05

石小天

架构训练营毕业设计:电商秒杀系统

AragornYang

架构训练营 架构实战营

架构训练营 毕业总结

AragornYang

架构训练营 架构实战营

从AI数羊到“相牛”:人工智能应用如何低门槛化?

脑极体

IntelliJ IDEA如何clean或者install Maven项目

爱好编程进阶

程序员 后端开发

Go Web 编程入门:快速了解Fiber框架

宇宙之一粟

Go 语言 Fiber 5月月更

设计模式之代理模式

乌龟哥哥

5月月更

数据库连接池 -Druid 源码学习(五)

wjchenge

Druid 数据库连接池

学生管理系统(3)

5月月更

架构实战营 - 毕业总结

smile

架构实战营

Dart 2.17发布,新特性速递

岛上码农

flutter ios 安卓开发 跨平台开发 5月月更

网站开发进阶(六十四)CSS 属性选择器讲解

No Silver Bullet

CSS 属性选择器 5月月更

15-操作DOM对象

爱好编程进阶

Java 程序员 后端开发

Nacos源码系列—订阅机制的前因后果(上)

牧小农

源码 nacos

有了测试组,为什么还要QA?

高山

测试 QA CMMI

5分钟学会 Vim 分屏操作方方面面

爱好编程进阶

Java 程序员 后端开发

ElasticSearch 概述

爱好编程进阶

Java 程序员 后端开发

druid 源码阅读 5——讨论下druid为什么不用AtomicLong

张大彪

K8S 准入控制器有哪些是默认的?

baiyutang

Docker Kubernetes 云原生 k8s 5月月更

MPEG-TS封装格式

Loken

音视频 5月月更

AI简报:图像超分模型RCAN+SRResNet

AIWeker

人工智能 深度学习 5月月更 超分

Java 集合看这一篇就够了

爱好编程进阶

程序员 后端开发

Maven 依赖管理与生命周期

Emperor_LawD

maven 5月月更

druid 源码阅读(五)初始化连接池总结

爱晒太阳的大白

5月月更

架构实战营模块5作业

天琪实刚亮

在线文本去重统计工具

入门小站

工具

在线TSV转XML工具

入门小站

工具

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