Categories

Posts Tagged ‘FBConnect’

iPhone SDK 开发: Facebook Connect应用

如果你正在开发iPhone上的Facebook相关的应用软件,那么根据Facebook的相关使用协议,必须通过官方提供的api来进行访问, 否则会涉及倒版权问题。

Facebook的应用开发采用和google类似的Session Token的方式, 但比google 更复杂。 在用户登陆的过程中, Facebook强制用户交互操作已完成登陆,如果用户/密码验证成功,服务器会返回session key 和 对应的session secret, 右后的操作就只需要将改session key和session secret传给Facebook服务器即可, 无需提供用户名密码。

好在Facebook提供了fbconnect的基础库,其中就有用于iPhone的cocoa库, 首先倒Facebook下载fbconnect, 然后将其加入到自己的project 中。这里, 具体步骤不再详述。

先看一下fb提供的登陆及权限界面,

使用FBConnect需要实现一下几个delegates,
FBDialogDelegate, 对话框的响应操作
其中
- (void)dialogDidCancel:(FBDialog*)dialog
当对话框取消关闭(点击Cancel或者X)时的操作再这里处理

- (void)dialogDidSucceed:(FBDialog*)dialog
当对话框成功完成(点击Okay)时的操作在此处理

- (void)dialog:(FBDialog*)dialog didFailWithError:(NSError*)error
如果发生错误,会调用该方法

FBSessionDelegate, session的响应操作
- (void)session:(FBSession*)session didLogin:(FBUID)uid
如果登陆成功, 会调用该方法, session是FBSession对象, uid就是用户的唯一id

- (void)sessionDidLogout:(FBSession*)session
退出登陆

FBRequestDelegate, url请求的响应操作
- (void)request:(FBRequest*)request didLoad:(id)result
当url请求发送并获得服务器回复时调用该方法, 在此可以进行登陆成功后的操作, 比如更新界面等等

- (void)request:(FBRequest*)request didFailWithError:(NSError*)error
在url请求过程中出现错误或者异常都回调用该方法

另外, FBConnect 提供了独立login 和 logout 按钮, 按照Facebook的使用协议必须使用这些按钮, 包括UIAlertView上的, 比如

为了更新界面方便, 最好是自己修改FBConnect代码,以便于对于login以及logout按钮的操作做更多的处理, 可以修改FBLoginButton类的代码, 添加protocal ,例如

1
2
3
4
@protocol LoginButtonDelegate <NSObject>
@optional
-(void) clicked;
@end

开发facebook的iphone应用也就这么简单, 声讨facebook严格的使用协议的同时也感谢facebook的开发人员提供了实用的基础库