任何方式从Facebook iOS SDK返回的访问令牌拉出会话密钥?
我需要在这个senario中使用Facebook会话密钥: http : //developers.facebook.com/docs/chat/#platauth
但是,目前的Facebook iOS SDK向我们返回了一个访问令牌,这对于这种情况是不够的。 我挖了很多,发现这个问题在这里:
http://www.quora.com/Do-the-OAuth2-access-tokens-in-the-new-Facebook-Graph-API-expire
但是它描述的格式与我们得到的访问令牌没有相似之处。
我对这些事情有些困惑。
顺便说一句,我检查了一个老版本的iPhone 老的Facebook SDK来testing,因为这个旧的SDK直接提供会话密钥,但是这个SDK现在总是显示从Facebook成功login后的错误页面。 似乎这个SDK已被完全弃用?
为了清楚地说明这个问题,我从Facebook iOS SDK获得的访问令牌(embedded在URL中):
fb193174047373858://authorize/#access_token=IwDbeiWINrotP3JOd1EGoEY7OmOBd2DyV8lh73mutCM.eyJpdiI6IkdKd3BvWlItcWlWRzIwTGYtUkRUVWcifQ.J6qNtSibMmm0yFe2QNHG46jnIUXef3dV-NnbYqXkfrFABjPrgMPQRUeKHJ3GxX1T3nlU7-4P8FUT6dlfwSwHfNJrheTUZIXdd3AlsSRUiUer5xEdFA9IsGEMn6GyHheH9DSr76IeZcBjl-_s4ub3kg&expires_in=0
我仍然没有公式将FBAppAuth-ed或SafariAuth-ed access_token片段转换为session_id。 然而,下面的描述将有助于获得所描述的公式中的access_token,其然后可以被容易地分割以导出session_id。 希望这可以帮助。
在iOS SDK版本2中,login由Facebook类中的以下API处理:
- (void)authorize:(NSArray *)permissions delegate:(id<FBSessionDelegate>)delegate;
在执行相同的API时,如果closuresFBAppAuth和SafariAuth,则会调用login对话框,返回的access_token格式为APP_ID | SESSION_KEY | 消化
- (void)authorize:(NSArray *)permissions delegate:(id<FBSessionDelegate>)delegate { [_permissions release]; _permissions = [permissions retain]; _sessionDelegate = delegate; //[self authorizeWithFBAppAuth:YES safariAuth:YES]; [self authorizeWithFBAppAuth:NO safariAuth:NO]; // Turned off FBApp and Safari auth }
返回的access_token可以在Facebook类的下面的callback方法中被捕获(请放一个NSLog来打印令牌):
- (void)fbDialogLogin:(NSString *)token expirationDate:(NSDate *)expirationDate
当前FB访问令牌具有以下格式('|'是分隔符):|| 例如,对于像这样的access_token:146012674543599 | de29194522ad43g16ec2ca9b-612345672 | kK5HvfSTbJx-x21rMsTyttifij0会话密钥是:de29194522ad43g16ec2ca9b-612345672
干杯
- 在Facebook上添加当前位置发布video
- 如果Facebook应用程序已安装,PFFVideosUtilslogin方法将不会执行任何操作
- 添加更多单元格UICollectionView
- Facebook iOS SDK 4.0.1中的FBSDKAppInviteDialog已成功发送,但未收到通知
- “apprequests”对话框报告成功,收件人收到任何东西
- 使用svk v3.19和Graph API v2.1自定义Facebook iOS请求对话框
- FBSDKAppInviteDialog的closures和结果总是奇怪的行为(null)
- 发布状态更新时,ios-Facebook SDK 3.0错误5
- FBSDKShareLinkContent未设置contentDescription和contentTitle