2015-02-09 118 views
1

我在我的设备上安装了Facebook应用程序。我已从设备设置中删除Facebook登录名和密码,但Facebook应用程序仍拥有自己的凭据。iOS应用程序使用Facebook应用程序凭证

我尝试使用此代码:

NSString *accessToken = [[FBSession.activeSession accessTokenData] accessToken]; 
FBRequest *request = [FBRequest requestForMe]; 

[request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *err) { 
}]; 

不过的accessToken为零。如何在不使用网络查看授权的情况下使用Facebook应用凭证。因为Facebook应用中有一个帐户,似乎我可以使用它,但如何访问当前的访问令牌或会话?

所以爱宝有3种方式登录到应用程序:

  1. 使用设备设置为facebbok
  2. 使用Web视图授权
  3. 用公报的Facebook应用程序凭据 - 对此,我是问。

回答

0

我通过创建一个单例类来处理。 每当我使用Facebook的功能,我叫下面的类

[self.classObj facebookLogin:self]; 

- (void)facebookLogin:(id)delegate { 

    sharedFacebookHelper.delegate = delegate; 

    if (!sharedFacebookHelper.session.isOpen) { 
    // Create a new, logged out session. 


    NSArray *permissions = [[NSArray alloc] initWithObjects:@"set your permissions here",nil]; 


    sharedFacebookHelper.session = [[FBSession alloc] initWithPermissions:permissions]; 

/////////////////////////////////// 

    NSString *accessToken = [sharedFacebookHelper.session.accessTokenData accessToken]; 

////////////////////////////////////// 




    [FBSession setActiveSession:sharedFacebookHelper.session]; 

// Popup code here.. 

// And whatever code for your facebook functionality here 

}else { 

//We already the session data so go ahead the whatever facebook functionality we need 

} 

的appdelegate代码:

- (void)applicationDidBecomeActive:(UIApplication *)application { 


[[MyFacebookHelperClassName sharedFacebookHelper] handleBecomeActive]; 

} 


- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url 
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { 


return [[MyFacebookHelperClassName sharedFacebookHelper] handleOpenURL:url forSourceApplication:sourceApplication]; 
} 



- (void)applicationWillTerminate:(UIApplication *)application { 

[[MyFacebookHelperClassName sharedFacebookHelper] closeSession]; 

} 
+0

感谢你的答案,但我怎么能得到令牌和凭证从Facebook应用程序。 NSString * accessToken = [[FBSession.activeSession accessTokenData] accessToken];返回给我null – 2015-02-10 10:32:09

+0

检查更新的代码/////////////// NSString * accessToken = [sharedFacebookHelper.session.accessTokenData accessToken]; ////////////////// – YaBoiSandeep 2015-02-10 11:00:03

+0

你认为它会使用官方的Facebook应用程序证书? – 2015-02-10 11:54:28

相关问题