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 ,如需转载请自行联系原作者
相关文章
|
9天前
|
缓存 安全 API
API 接口开发与合理利用:构建高效、安全、可维护的数字桥梁
本文全面解析API接口的设计、优化与安全维护。API作为系统间交互的标准化契约,核心价值在于解耦系统、提升复用性和构建开放生态。设计时需遵循六大原则:明确输入输出、关注单一职责、实现自我表达、确保功能无重叠、保障幂等性及合理版本化。性能优化从批量处理、异步调用、并行执行等方面入手,同时结合缓存、池化技术和SQL优化提升效率。安全性涵盖加密传输、加签验签、Token认证、防重放攻击及限流熔断等十大要点。最后,通过文档自动生成、日志体系和版本管理确保接口可持续迭代。优秀的API应以契约优先、演进思维和防御心态为核心,成为系统的数字资产,支持内外部高效协作与生态建设。
|
1月前
|
存储 供应链 监控
1688商品数据实战:API搜索接口开发与供应链分析应用
本文详细介绍了如何通过1688开放API实现商品数据的获取与应用,涵盖接入准备、签名流程、数据解析存储及商业化场景。开发者可完成智能选品、价格监控和供应商评级等功能,同时提供代码示例与问题解决方案,确保法律合规与数据安全。适合企业开发者快速构建供应链管理系统。
|
3月前
|
监控 搜索推荐 API
淘宝店铺详情API接口的开发、应用与收益
淘宝开放平台提供了丰富的API接口,帮助开发者获取海量的商品和店铺数据。本文聚焦于淘宝店铺详情API接口的开发、应用及收益。首先,开发者需注册账号并创建应用以获取API密钥。接着,通过阅读接口文档,使用Python等语言编写代码调用API,处理返回的数据。该接口广泛应用于竞品分析、数据分析、价格监控、个性化推荐等领域,为开发者带来提高用户体验、降低运营成本、增加收入等多方面收益。同时,开发者需注意遵守法律法规、请求频率限制及数据安全等问题,确保合法合规地使用接口资源。
135 4
|
3月前
|
自然语言处理 搜索推荐 数据挖掘
淘宝商品描述 API 接口的开发、应用与收益
淘宝商品描述API接口的开发与应用涵盖注册成为开发者、了解API规范、选择开发工具及语言(如Python)和实现代码调用。该接口可用于优化电商平台商品展示、同步数据、竞品分析、智能客服及个性化推荐,从而提高销售转化率、降低运营成本并拓展业务机会。通过自动化处理和数据分析,企业能更精准地满足消费者需求,提升竞争力。
125 9
|
1月前
|
安全 API Swift
如何在苹果内购开发中获取App Store Connect API密钥-共享密钥理解内购安全-优雅草卓伊凡
如何在苹果内购开发中获取App Store Connect API密钥-共享密钥理解内购安全-优雅草卓伊凡
113 15
如何在苹果内购开发中获取App Store Connect API密钥-共享密钥理解内购安全-优雅草卓伊凡
|
6天前
|
前端开发 测试技术 API
2025年API开发必备:10款优秀Postman替代工具大盘点
API测试在现代开发中至关重要,Postman虽为首选,但市场上涌现出许多优秀替代工具。本文精选2025年10款好评如潮的API测试工具:Apifox、Insomnia、Hoppscotch、Paw、Talend API Tester、HTTPie、ARC、Swagger UI、SoapUI和Thunder Client。这些工具各具特色,满足不同需求,如团队协作、开源易用、自动化测试等。无论是简洁轻量还是功能全面,总有一款适合你的团队,助力效率提升。
|
3月前
|
监控 Cloud Native 安全
基于 API 网关践行 API First 开发实践
API First 开发模式的核心在于:以 API 为先,将其视为“头等公民”,在构建应用、服务及集成之前,应优先定义并设计 API 及其配套。API First 作为一种相对较新的开发模式,它已逐渐流行并获得业内的广泛认可。
230 81
|
2月前
|
数据采集 搜索推荐 API
小红书笔记详情 API 接口的开发、应用与收益
小红书(RED)作为国内领先的生活方式分享平台,汇聚了大量用户生成内容(UGC),尤其是“种草”笔记。小红书笔记详情API接口为开发者提供了获取笔记详细信息的强大工具,包括标题、内容、图片、点赞数等。通过注册开放平台账号、申请API权限并调用接口,开发者可以构建内容分析工具、笔记推荐系统、数据爬虫等应用,提升用户体验和运营效率,创造新的商业模式。本文详细介绍API的开发流程、应用场景及潜在收益,并附上Python代码示例。
332 62
|
1月前
|
存储 编解码 资源调度
鸿蒙相机开发实战:从设备适配到性能调优 —— 我的 ArkTS 录像功能落地手记(API 15)
本文分享鸿蒙相机开发经验,从环境准备到核心逻辑实现,涵盖权限声明、模块导入、Surface关联与分辨率匹配,再到录制控制及设备适配法则。通过实战案例解析,如旋转补偿、动态帧率调节和编解码优化,帮助开发者掌握功能实现、设备适配与体验设计三大要点,减少开发坑点。适合鸿蒙新手及希望深化硬件交互能力的工程师参考收藏。
92 2
|
2月前
|
人工智能 Rust 安全
DeepClaude:结合 DeepSeek R1 和 Claude AI 各自优势开发的 AI 应用平台,支持 API 调用和零延迟的即时响应
DeepClaude 是一个开源的 AI 应用开发平台,结合了 DeepSeek R1 和 Claude 模型的优势,提供即时响应、端到端加密和高度可配置的功能。
361 4
DeepClaude:结合 DeepSeek R1 和 Claude AI 各自优势开发的 AI 应用平台,支持 API 调用和零延迟的即时响应

热门文章

最新文章