在最后一个 SDK 中,读取和发布权限是分开的。因此,在我的代码中,每当用户登录时,我都会使用以下代码:
[FBSession openActiveSessionWithReadPermissions:nil
allowLoginUI:YES
completionHandler:
^(FBSession *session,
FBSessionState state, NSError *error) {
[self sessionStateChanged:session state:state error:error];
}];
我在 facebook 开发人员中看到,当我想发布时,我应该请求这样的发布权限:
// can include any of the "publish" or "manage" permissions
NSArray *permissions =
[NSArray arrayWithObjects:@"publish_actions", nil];
[[FBSession activeSession] reauthorizeWithPublishPermissions:permissions
defaultAudience:FBSessionDefaultAudienceFriends
completionHandler:^(FBSession *session, NSError *error) {
/* handle success + failure in block */
}];
由于这是我使用 facebook 集成的第一个应用程序,我想问几件事:
1) 这些会议可以同时开放吗?只有当用户想要发布时,我才会请求发布权限,但我应该对另一个会话做其他事情吗?喜欢先关闭它,然后再重新打开它还是我不应该担心?
2) 例如,如果我有一个 postToFriends 按钮,我的伪代码会是这样的,对吧?
- (IBAction)postToFriendaction:(id)sender {
if (!FBSession.activeSession.isOpen) {
/* code from the above for enabling publish permissions*/
}
或者我应该将 !FBSession.activeSession.isOpen 更改为其他内容,因为没有用户仅以读取权限登录,他从不输入 if 子句。你能帮助我吗?