Facebook登录每次都给我授权这个应用程序

时间:2013-04-17 16:26:34

标签: iphone ios objective-c facebook

我正在使用Facebook SDK进行Facebook集成..我有uibutton,我用它来登录Facebook并在Facebook上分享详情

我正在使用FBSession登录

 [FBSession.activeSession openWithCompletionHandler:^(FBSession *session, FBSessionState state,NSError *error) {

我可以登录到Facebook ..但是当我每次尝试分享时,即使用户已经授权,也会进入授权页面。我不希望这个页面出现在第一次以外。每次用户想在Facebook上分享时如何确保此页面不会出现

在plist文件中我已经给出了正确的应用ID,并且在urlscheme中也提供了fbappid,在我的appdelegate中我添加了handleopenurl,打开会话

enter image description here

2 个答案:

答案 0 :(得分:2)

为了不询问您是否要授权您的应用(尽管您已经获得授权),您必须重复使用旧令牌。你每次都要制作一个新的,因此facebook API会要求你确认。

编辑:
(由@Slavco Petkovski在评论中提出)

在使用之前验证您已保存的访问令牌:

if (![FBSDKAccessToken currentAccessToken] ||
      [FBSDKAccessToken currentAccessToken].expirationDate.timeIntervalSince1970 < now.timeIntervalSince1970) {
    // initiate request for a new token
}

答案 1 :(得分:0)

这是因为你已经在Facebook上获得了这个特定应用的许可。 尝试使用新帐户,系统会要求您提供权限。

修改

尝试使用

`+ (BOOL)openActiveSessionWithReadPermissions:(NSArray*)readPermissions
                            allowLoginUI:(BOOL)allowLoginUI
                       completionHandler:(FBSessionStateHandler)handler;`

使用completionHandler

中的会话对象