标签: sdk3.0

Facebook iOS SDK 3.0重新授权

我有一些关于新的FBSession重新授权的问题(在facebook sdk 3.0中重新授权来自:行为:completionHandler :):

一旦有人通过我的应用程序登录facebook,在某些页面上我想用他/她的facebook凭据重新验证用户身份.这是为了确保正在查看页面的人和初始化登录的人是相同的.re-auth的权限与登录保持一致.我需要的是重新确认用户的密码以确保这种情况.

因此我使用reauthorisationWithPermissions:这样做.我将行为设置为FBSessionLoginBehaviorForcingWebView,以确保用户被迫输入他/她的凭据.但是,这根本不起作用.它只是弹出一个空白的webview几秒钟然后消失......此时,它调用FBSesstionStateHandler块,状态设置为FBSessionStateOpen,但是,无法调用(completionHandler :)中定义的FBSessionReauthorizeResultHandler.

但是,如果我只是将行为设置为默认(FBSessionLoginBehaviorWithFallbackToWebView),它可以在facebook app/safari之间来回传递请求,并通过正确调用completionHandler来完成调用.但是,使用默认行为时,它不会强制用户重新输入他/她的密码.

所以我真的很困惑,网上的sdk文档对我的情况并不是很有用.有人可以告诉我我做错了什么......或者说它是SDK中的已知错误吗?如果是这样,我怎样才能满足我的要求?

-(void) reauthThroughFacebook {

if ( !self.facebookSession.isOpen && self.facebookSession.state == FBSessionStateCreatedTokenLoaded) {
    [self.facebookSession openWithBehavior: FBSessionLoginBehaviorWithNoFallbackToWebView 
                         completionHandler: self.stateHandler];
} 

if ( self.facebookSession.isOpen ) {
    [self.facebookSession reauthorizeWithPermissions: self.userPermissions
                                            behavior: FBSessionLoginBehaviorForcingWebView
                                   completionHandler:^(FBSession *session, NSError* error){
                                       if (self.facebookSession == session) {
                                           [self completedReauthWithSuccess:(error == nil) error:error];
                                       }
                                   }];
} else {
    [self completedReauthWithSuccess:NO error:[NSError errorWithDomain: @"No active session found."
                                                                  code: FBErrorInvalid userInfo: nil]];
}

}
Run Code Online (Sandbox Code Playgroud)

此外,一旦正确弹出reauth Web视图,如何确保自动填充用户的电子邮件地址并阻止更改用户表单?我可以访问facebook sdk中的Web视图来设置这些属性吗?

最后,如果使用与登录相同的权限进行重新验证,访问令牌和到期日会发生什么?

先感谢您,

facebook sdk3.0 ios facebook-ios-sdk

8
推荐指数
1
解决办法
2523
查看次数

与auth.extendSSOAccessToken相关的Facebook错误

我在我的应用程序中使用Facebook SDK 3.0 for Android在人们的墙上发布更新.在我的facebook的Insights区域,它表示我的API调用中约有25%导致API错误.根据"最常见的API错误",它说auth.extendSSOAccessToken.在"API错误细分"下,它表示没有API错误.

auth.extendSSOAccessToken在Facebook开发者网站上看到引用的唯一一次是一个已修复的旧bug.我已经检查了令牌到期日期,并且它们将在2个月后设置为过期,因此生成的任何令牌都没有机会到期.

我假设某个会话正在请求扩展访问令牌上的单点登录,但我不知道为什么.我也不知道这个错误是否限制了人们登录.我无法在我自己的测试设备上复制此错误,因此我留下了Facebook洞察页面上提供的有限信息.

有谁熟悉这个错误并知道如何预防它?

android facebook sdk3.0 facebook-android-sdk

7
推荐指数
1
解决办法
418
查看次数