Android使用facebook api(二)
本文重点介绍下facebook接入的一些背景知识,本身其实与android是无关的。
Facebook Connect
facebook connect协议是OpenID与OAuth的结合,第三方站点/应用可以通过facebook connect这套协议规范便捷地接入facebook并使用facebook上大量的用户数据。
OpenID简介
OpenID背后的思想很简单,简化用户登录的过程,而不是录入一个个注册表单。详细的知识请点击这里 ,OpenID的优点主要有以下几点:
- 更快、更简单的登录,因为消除或简化了注册过程。
- 更好的登录过程和生命周期,因为用户从此只需使用一个ID和口令。
OAuth简介
在第三方站点/应用提供编程接口的背景下,如何控制接入的安全与数据的可控正是OAuth要解决的问题。详细的知识请点击这里 ,OAuth的优点主要有以下几点:
- 安全、保密的第3方数据访问。
- 对于第3方访问的控制是声明性的。
Facebook Connect简介
Facebook Connect结合了OpenId与OAuth地思想,为用户提供统一登录页面,并对开发者的数据访问进行了声明与控制。Facebook Connect的优点:
- 一键登录(android跨app有待调研)
- 直接访问Facebook提供的API
Access Token
用户数据使用授权的整体的思路就是第三方应用从facebook那里获得未授权的token与**,用户由facebook引导对token进行授权,facebook返回授权后的access_token给第三方应用。描述下就是 unAuth token ————request token————access token的过程。
客户端通过webkit浏览器打开https://www.facebook.com/dialog/oauth?client_id=${client}&redirect_uri=http://127.0.0.1/openFire.html&scope=email,offline_access&response_type=token
链接 。
client_id, 在facebook注册的app的id
redirect_url, 回调的URL
scope,访问的数据范围
response_type 请求类型
验证通过后如果是用户第一次使用,则会跳转至授权页面要求用户授权https://www.facebook.com/dialog/permissions.request?_path=permissions.request&app_id=${appid}&redirect_uri=http%3A%2F%2F127.0.0.1%2FopenFire.html&display=page&response_type=token&fbconnect=1&perms=email&from_login=1
返回的数据access_token(有效用户标示)和expires_in(token有效期)
连接facebook的业务大体如下图所示