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. 初步理解socket

    近期研究下socket,发现自己还是有非常多不明确的地方,索性沉下心来,从最基础開始学习,開始看起,如今对自己的学习做下小小总结,以便和大家分享,如有谬误,敬请指正. 原创文章,转载请注明出处:htt ...

  2. Nginx集群

    转自:http://hi.baidu.com/xingyuanju/blog/item/779a2a23b7ebb749935807f1.html http://hi.baidu.com/dianhu ...

  3. 排查Hive报错:org.apache.hadoop.hive.serde2.SerDeException: java.io.IOException: Start of Array expected

    CREATE TABLE json_nested_test ( count string, usage string, pkg map<string,string>, languages ...

  4. Visual Studio 2012连接TFS2010登录不了

    一直用VS2012+TFS2010开发项目, 最近几天忽然很不正常, 在VS中会频繁要求输入TFS的账号密码, 经常要输入很多遍才可以正常连接签入签出. 这几天更甚, 基本上直接连接不了了. 网上找到 ...

  5. 将List集合中的map对象转为List<对象>形式--封装类

    import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.Li ...

  6. 用curl抓取网站数据,仿造IP、防屏蔽终极强悍解决方式

    最近在做一些抓取其它网站数据的工作,当然别人不会乖乖免费给你抓数据的,有各种防抓取的方法.不过道高一尺,魔高一丈,通过研究都是有漏洞可以钻的.下面的例子都是用PHP写的,不会用PHP来curl的孩纸先 ...

  7. 表结构设计器(EZDML)1.98版公布

    表结构设计器(EZDML)是一个免费的数据库建表的小软件,可高速的进行数据库表结构设计.建立数据模型,能迅速生成代码模板.简单界面和字典文档,支持脚本编程. 新版本号大概有下面改进: 1.修复了部 ...

  8. (剑指Offer)面试题48:不能被继承的类

    题目: 写一个不能被继承的类 思路: 1.把构造函数设为私有函数 在C++中子类的构造函数会自动调用父类的构造函数,子类的析构函数也会自动调用父类的构造函数,要想一个类不能被继承,只要把它的构造函数和 ...

  9. 极客Web前端开发资源大荟萃#001

    每周极客都将总结本周最精彩的素材提供给大家,希望可以带给你更多地灵感和帮助!极客#GB课程库#现已上线,无论你是初级.中级.还是正在进修的高级前端工程师.这里都将帮助你得到更多更高效的学习.原文:极客 ...

  10. C#基础视频教程3.1 常见控件类型和使用方法

    可以从左侧的工具箱中找到常见的控件(你要在Form1这种窗体上)   为了方便你也可以把工具箱整个拖过去,这样从上到下控件都给你排好了   对于按钮来说,最常见的就是他的背景颜色,文字,字体,还有是否 ...