Facebook 商业价值简介

Facebook 是一个社交网络服务网站,于 2004 年 2 月 4 日上线,到 2010 年 2 月 2 日, Facebook 正赶超雅虎将成为全球第三大网站,与微软谷歌领衔前三。Facebook 一个月内增加的新用户量相当于雅虎一年所增加的用户量,当前的注册用户为 3.5 亿,这些用户中有一半的人每天都会访问网站。面对如此庞大和活跃的的用户群体,企业已经看到了它所蕴含的巨大商机。许多品牌都在 Facebook 上创建了企业账户,收集用户对产品的的评论反馈信息,及时对自己的产品和品牌做出调整,抢占市场先机。目前市场上有很多优秀的舆情智能分析工具,可以海量分析网络上各种媒体介质的信息,通过数据挖掘技术分析出用户的喜好和潜在的购买行为。

Facebook API 简介

获取 Facebook 的数据最常用的途径是通过 web 页面,以 Coca-Cola 为例,用户可以登陆 http://www.facebook.com/cocacola从页面上获得各种数据,包括用户对该产品的评论、产品相册等。Facebook 前端界面做得非常友好,采用了很多最新的 UI 技术,可以带来比较好的用户体验。类似的前端展示技术服务的对象是人,而程序在处理非结构化数据的时候有很多困难,随着前端页面布局的不断更新,仅仅使用网络爬虫的手段很难保证抓取信息的准确性

Facebook 为了解决第三方程序访问数据的问题推出了一套 Facebook API 平台,叫做 Graph API。它让普通用户可以读写在 Facebook Social Graph 的各种对象,这套 API 设计得非常简单,开发人员不需要花大量时间阅读文档,在最短的时间内就可以上手。

Facebook API 开发入门

RESTful 方法获取数据

以 Coca-Cola 的 Facebook 为例,如果我们想获得其它用户在其涂鸦墙 (Wall) 上的评论,我们要做的仅仅是在浏览器中输入 :https://graph.facebook.com/cocacola/feed, 系统将会以 JSON 数组格式返回结果。JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。

图 2. 获得其它用户在其涂鸦墙 (Wall) 上的评论

数据中包含了消息的 ID、消息内容、作者、作者 ID、发布时间等各种消息。不仅涂鸦墙 (Wall),所有的 Facebook 对象都可以用如下的 URL 结构访问:https://graph.facebook.com/ID/CONNECTION_TYPE, 下表列出了一些常用的对象。

Facebook对象 访问方式
好友列表 (Friends) https://graph.facebook.com/{ID}/friends
新闻 (News feed) https://graph.facebook.com/{ID}/home
用户喜好 (Likes) https://graph.facebook.com/{ID}/likes
电影 (Movies) https://graph.facebook.com/{ID}/movies
书籍 (Books) https://graph.facebook.com/{ID}/books
相册 (Photo Albums) https://graph.facebook.com/{ID}/albums
上传视频 (Video Uploads) https://graph.facebook.com/{ID}/videos/uploaded
组 (Groups) https://graph.facebook.com/{ID}/groups

只有该对象是 public 的状态下才能直接通过以上方法访问,如果是 private 的,需要提供 access token 访问,文章的下面部分有对应的章节介绍。

Facebook API 开发进阶

使用 access token 访问涂鸦墙

在上面的例子中,我们访问的 Coca-Cola 公司涂鸦墙 (Wall) 是 Public 的属性,所有人都可以查看上面的内容,不需要任何的鉴权。但是大多数个人账户的涂鸦墙的属性都是 private,需要提供正确的 token 才能访问。

Facebook Graph API 使用 OAuth 2.0 作为权限控制,它是一个简化版的 OAuth, 利用 SSL 协议作为 API 的通信,而不是复杂的 URL 签名和 token 交换。使用 access token 的方法特别简单,如果你想查看自己的朋友列表,URL 的的形式如下所示:https://graph.facebook.com/me/friends?access_token=XXXX

me 是参数中的关键字,代表自己的 ID,如果想访问别人的涂鸦墙,就应该用 ID 来唯一确定一个用户。Access token 参数后面是一个系统随机的字符串。

获得 ID 和 Access token

前面概述了怎样使用 access token 访问 private 的涂鸦墙,下面将介绍一种获得 ID 和 access token 的方法。

首先登陆自己的 Facebook 账户后,将鼠标移到头像位置,在浏览器的下面的 URL 就包含该账户对应的唯一 ID。

对用户进行授权

Facebook Platform 对 OAuth 2.0 身份认证提供支持,也支持一种较老的、定制的授权签名方案。编写新应用程序时应该避免使用老的身份认证方案,因为对这种老方案的支持很快就会取消了。更多有关 OAuth 的信息,请参见 参考资料 中的 OAuth 2.0 Protocol 规范。

Facebook SDK for Android 协同 Facebook Platform 一起,隐藏了 OAuth 身份认证的复杂性,如 图

OAuth 2.0 Protocol (IETF)

Facebook API 入门的更多相关文章

  1. Web API 入门指南 - 闲话安全

    Web API入门指南有些朋友回复问了些安全方面的问题,安全方面可以写的东西实在太多了,这里尽量围绕着Web API的安全性来展开,介绍一些安全的基本概念,常见安全隐患.相关的防御技巧以及Web AP ...

  2. 转载-Web API 入门

    An Introduction to ASP.NET Web API 目前感觉最好的Web API入门教程 HTTP状态码 Web API 强势入门指南 Install Mongodb Getting ...

  3. Hadoop MapReduce编程 API入门系列之压缩和计数器(三十)

    不多说,直接上代码. Hadoop MapReduce编程 API入门系列之小文件合并(二十九) 生成的结果,作为输入源. 代码 package zhouls.bigdata.myMapReduce. ...

  4. Web API入门指南(安全)转

    安全检测的工具站点:https://www.owasp.org/index.php/Category:Vulnerability_Scanning_Tools Web API入门指南有些朋友回复问了些 ...

  5. 【ASP.NET Web API教程】1 ASP.NET Web API入门

    原文 [ASP.NET Web API教程]1 ASP.NET Web API入门 Getting Started with ASP.NET Web API第1章 ASP.NET Web API入门 ...

  6. facebook api介绍

    转自(http://sls.weco.net/node/10773) 一.Facebook API 基礎概念 Facebook API 概論 : API 最大的好處在於可以讓程式開發人員只需要根據 A ...

  7. Web API 入门指南

    Web API 入门指南 - 闲话安全2013-09-21 18:56 by 微软互联网开发支持, 231 阅读, 3 评论, 收藏, 编辑 Web API入门指南有些朋友回复问了些安全方面的问题,安 ...

  8. 使用Jax-rs 开发RESTfull API 入门

    使用Jax-rs 开发RESTfull API 入门 本文使用 Jersey 2开发RESTfull API.Jersey 2 是 JAX-RS 接口的参考实现 使用到的工具 Eclipse Neon ...

  9. Web API 入门 二 媒体类型

    还是拿上面 那篇 Web API 入门 一  的那个来讲 在product类中加一个时间属性

随机推荐

  1. 以前写SpringMVC的时候,如果需要访问一个页面,必须要写Controller类,然后再写一个方法跳转到页面,感觉好麻烦,其实重写WebMvcConfigurerAdapter中的addViewControllers方法即可达到效果了

    以前写SpringMVC的时候,如果需要访问一个页面,必须要写Controller类,然后再写一个方法跳转到页面,感觉好麻烦,其实重写WebMvcConfigurerAdapter中的addViewC ...

  2. Spring事务为什么不会自动回滚?Spring事务怎样才会自动回滚?事务自动回滚条件及手动回滚

    原文:https://blog.csdn.net/qq_32331073/article/details/76508147 更多Spring事务问题请访问链接:Spring事务回滚问题疑难详解 在此, ...

  3. linux创建swap分区

    创建交换分区 root@zabbix-server:~# mkdir /swap root@zabbix-server:~# cd /swap/ root@zabbix-server:/swap# l ...

  4. 接口安全--http数字签名

    原文:https://blog.csdn.net/u011521890/article/details/55506716 import java.io.UnsupportedEncodingExcep ...

  5. Unity3D面试题总结

    一.什么是渲染管道? 是指在显示器上为了显示出图像而经过的一系列必要操作. 渲染管道中的很多步骤,都要将几何物体从一个坐标系中变换到另一个坐标系中去. 主要步骤有: 本地坐标->视图坐标-> ...

  6. windows端口

    端口可分为3大类: 1) 公认端口(Well Known Ports):从0到1023,它们紧密绑定于一些服务.通常这些端口的通讯明确表明了某种服务的协议.例如:80端口实际上总是HTTP通讯. 2) ...

  7. SharePoint 2013 本地创建解决方案

    在之前的博客<SharePoint 2013本地开发解决方案以及远程调试>中,我们介绍了如何通过修改注册表,使SharePoint 2013 解决方案可以本地编辑,也提及了即使修改注册表, ...

  8. Singleton 单例模式(懒汉方式和饿汉方式)

    单例模式的概念: 单例模式的意思就是只有一个实例.单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个类称为单例类. 关键点: 1)一个类只有一个实例       这是最基本 ...

  9. 《Haskell趣学指南》

    <Haskell趣学指南> 基本信息 原书名:Learn You a Haskell for Great Good!: A Beginner's Guide 原出版社: No Starch ...

  10. Dockerfile命令

    Dockerfile分基础镜像信息.维护者信息.镜像操作指令.容器启动时执行指令 FROM 镜像名:标签 第一条指令必须时FROM MAINTAINER 维护者信息 RUN command或者RUN ...