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. linux下使用free命令查看实际内存占用(可用内存)

    转:http://blog.is36.com/linux_free_command_for_memory/ linux下在终端环境下可以使用free命令看到系统实际使用内存的情况,一般用free -m ...

  2. Windows 配置 Apache Python CGI

    提示:安装Apache可参考 https://jingyan.baidu.com/article/0eb457e53c019f03f1a905c7.html 1.  打开URL: https://ww ...

  3. 怎样加入cocostudio生成的UI到项目

    cocos2dx版本号:cocos2d-x-3.2alpha0 cocostudio版本号:V1.4.0.1 1.将cocostudio生成的UI文件复制到项目Resources目录 2.加入头文件, ...

  4. [Python爬虫] 之六:Selenium 常用控件用法

    Selenium 常用控件用法 1.文本框 上图中,如何定位搜索文本框,并输入搜索内容进行搜索 首先:利用方法 find_element_by_xpath定位元素:inputElements = se ...

  5. PHP实现链表

    看了很久数据结构但是没有怎么用过,在网上看到了关于PHP的数据结构,学习了一下,与大家一起分享一下. 简短不割                                              ...

  6. Android倒计时案例展示

    1. Handler 与Message方法实现倒计时功能 关于Handler与Message消息机制的原理可查看:Android--Handler使用应运及消息机制处理原理分析 这个设计思路也是最经常 ...

  7. CKEditor与CKFinder学习--CKFinder源代码改动自己定义上传文件名称

    CKFinder的系列文章到眼下应该说基本能够满足开发需求了,只是另一个小细节,CKFinder默认上传的文件名称和源文件名称一致,假设文件名称反复会自己主动加入编号"(1)"&q ...

  8. 算法笔记_034:大整数乘法(Java)

    目录 1 问题描述 2 解决方案 2.1 蛮力法   1 问题描述 计算两个大整数相乘的结果. 2 解决方案 2.1 蛮力法 package com.liuzhen.chapter5; import ...

  9. JDK中注解的底层实现

    前提 用Java快三年了,注解算是一个常用的类型,特别是在一些框架里面会大量使用注解做组件标识.配置或者策略.但是一直没有深入去探究JDK中的注解到底是什么,底层是怎么实现了?于是参考了一些资料,做了 ...

  10. Entity Framework Code First关系映射约定【l转发】

    本篇随笔目录: 1.外键列名默认约定 2.一对多关系 3.一对一关系 4.多对多关系 5.一对多自反关系 6.多对多自反关系 在关系数据库中,不同表之间往往不是全部都单独存在,而是相互存在关联的.两个 ...