Facebook API 开发记录

简介:

注册App
Application里有个应用叫Developer,加入后可以注册新应用。点击“set up new application”输入应用的信息提交即可。开发者首页好像没有相关的链接入口,这点不方便。

 

权限验证
现在的社交、微博网站大多都采用标准的OAuth验证,Facebook也不例外,这点必须滴。用户登录是在Facebook的网站页面输入帐号密码,登录成功后会重定向到你的页面从而获取Token,之后访问API使用Token来验证。你的应用只需要拿到用户的Token即可,整个过程你是接触不到用户的帐号和密码的。即使你拿到帐号也没用,API只认Token。相比HTTP Basic Authentication(HTTP Header中增加Bae64过的帐号和密码),整个做法复杂化了,但是安全了。Basic Authentication时代开发者可以随心所欲,做各种各样的应用。OAuth之后最麻烦的就是验证,特别是对桌面或移动应用,一般都在窗体中嵌入一个浏览器控件来完成。

 

获取Token
1) 访问https://graph.facebook.com/oauth/authorize?client_id={app_id}&redirect_uri={app_url},如果用户没有登录,则登录,提示用户是否允许应用访问自己的数据,既是否授权允许。Facebook返回到你的应用,带一个code参数: {app_url}?code={code}


2)访问https://graph.facebook.com/oauth/access_token?client_id={app_id}&redirect_uri={url}&client_secret={app_secret}&code={code}
Facebook返回到你的应用,body中有access_token,你可以在你的应用里存储用户token,默认60分钟过期,你可以增加offline_access权限让它不过期。
整个过程是比较简单的,不用作签名之类的。麻烦的是必须跳到facebook网站验证,如果是做客户端应用会影响体验。

 

访问API
访问需验证的Function加上access_token参数即可,GET或POST看具体函数而定,API统一返回JSON格式的数据,没有别的选择,不像Twitter的选择很多。请求中也不用做签名。

 

权限
Facebook的权限分得异常的细,默认你只能访问用户最基本的信息,比如你想获取一个设置了隐私(只对朋友开放)的用户的statu,需要read_stream权限,你想post statu需要publish_stream权限,你想获取用户的email帐号需要email权限等等。所以最好根据你的应用确定需要那些权限,在用户首次使用做权限验证时开通相应的权限,否则后面使用中会达不到你期望的结果。
提升权限
访问:https://graph.facebook.com/oauth/authorize?client_id={app_id}&redirect_uri={app_url}&scope=publish_stream,offline_access,user_status,read_stream
scope后面跟的就是权限,每个用逗号分开,可以有多个。

 

更新通知
Real-time Updates,当你的用户有更新时,Facebook可以通知你,这是一个很有用的功能,可以实时接受用户的更新。

1) 创建一个订阅,默认你的应用是没有更新通知的,你需要先创建一个订阅,告诉Facebook我需要更新通知。

POST数据到https://graph.facebook.com/{app_id}/subscriptions?access_token={token},这个token是应用的token不是用户的token,注意url是https,不是http(文档是错的),参数:object,fields(你需要监视用户的那些更新),callback_url,verify_token(你自己指定一个验证用),提交这个请求后就创建了一个订阅。提交POST时候你的callback_url必须存在且可以访问,Facebook会Get此url验证是否存在。

2) 接受更新,创建好订阅后当用户有更新时,Facebook会通知此url告诉你有更新(POST),你将收到的更新内容为JSON格式,如:“{"object":"user","entry":[{"uid":"100001548188940","id":"100001548188940","time":1301731097,"changed_fields":["feed"]}]}”,表示该用户更新了状态,不包括更新的内容。当然,返回可能是个集合。

你收到数据后可以做相应的更新处理,根据你的应用这个post频率可能会高(监视的是使用你应用的所有用户),得考虑的你的程序性能。

 

小结

Facebook是一个很全面的社交网站,其API也很丰富,有Friends,Feed,Like,Music,Photo,Events,Checkin...等等,文档也比较多。但具体使用上就简单了,至少每次请求API不用签名,相比Twitter,Douban等省事多了。关键得花时间研究透他的文档,文档里有详细的说明,问题都可以通过文档解决。

 

关键字:Facebook,API,社交网站,微博,应用
http://chy710.cnblogs.com/

 

分类:  API集成
本文转自chy710博客园博客,原文链接:http://www.cnblogs.com/chy710/archive/2010/11/26/1888903.html ,如需转载请自行联系原作者
相关文章
|
1月前
|
缓存 安全 测试技术
构建高效的RESTful API:后端开发的实践指南
【2月更文挑战第17天】在数字化转型的浪潮中,RESTful API已成为连接不同软件组件、实现数据交互的核心桥梁。本文将深入探讨如何构建一个高效、可扩展且安全的RESTful API,涉及设计原则、开发流程以及性能优化等关键方面。我们将透过实际案例,展示如何在保证简洁性和灵活性的同时,满足日益增长的业务需求和技术挑战。
|
1月前
|
API
uni-app 146朋友圈列表api开发
uni-app 146朋友圈列表api开发
18 0
|
7天前
|
小程序 前端开发 API
小程序全栈开发中的RESTful API设计
【4月更文挑战第12天】本文探讨了小程序全栈开发中的RESTful API设计,旨在帮助开发者理解和掌握相关技术。RESTful API基于REST架构风格,利用HTTP协议进行数据交互,遵循URI、客户端-服务器架构、无状态通信、标准HTTP方法和资源表述等原则。在小程序开发中,通过资源建模、设计API接口、定义资源表述及实现接口,实现前后端高效分离,提升开发效率和代码质量。小程序前端利用微信API与后端交互,确保数据流通。掌握这些实践将优化小程序全栈开发。
|
16天前
|
前端开发 Java API
构建RESTful API:Java中的RESTful服务开发
【4月更文挑战第3天】本文介绍了在Java环境中构建RESTful API的重要性及方法。遵循REST原则,利用HTTP方法处理资源,实现CRUD操作。在Java中,常用框架如Spring MVC简化了RESTful服务开发,包括定义资源、设计表示层、实现CRUD、考虑安全性、文档和测试。通过Spring MVC示例展示了创建RESTful服务的步骤,强调了其在现代Web服务开发中的关键角色,有助于提升互操作性和用户体验。
构建RESTful API:Java中的RESTful服务开发
|
21天前
|
机器学习/深度学习 前端开发 API
实现以图搜货功能,淘宝API开发实战分享
实现以图搜货功能,淘宝API开发实战分享
24 0
|
29天前
|
缓存 前端开发 API
构建高效可扩展的RESTful API:后端开发的最佳实践
【2月更文挑战第30天】 在现代Web应用和服务端架构中,RESTful API已成为连接前端与后端、实现服务间通信的重要接口。本文将探讨构建一个高效且可扩展的RESTful API的关键步骤和最佳实践,包括设计原则、性能优化、安全性考虑以及错误处理机制。通过这些实践,开发者可以确保API的健壮性、易用性和未来的可维护性。
|
1月前
|
API
uni-app 147我的朋友圈列表api开发
uni-app 147我的朋友圈列表api开发
14 0
|
1月前
|
API
uni-app 145评论朋友圈api开发(二)
uni-app 145评论朋友圈api开发(二)
16 0
|
1月前
|
API
uni-app 144评论朋友圈api开发(一)
uni-app 144评论朋友圈api开发(一)
18 1