【问题标题】:iOS app use Facebook app credentialiOS 应用使用 Facebook 应用凭据
【发布时间】:2015-02-09 20:49:01
【问题描述】:

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

我尝试使用此代码:

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

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

但是 accessToken 是零。如何在不使用 Web 视图授权的情况下使用 Facebook 应用程序凭据。因为 Facebook 应用中有一个帐户,我似乎可以使用它,但是如何访问当前的访问令牌或会话?

所以alpo有3种方式登录app:

  1. 使用 facebbok 的设备设置
  2. 使用 Web 视图授权
  3. 使用官方 Facebook 应用程序凭据 - 我正在询问。

【问题讨论】:

    标签: ios facebook facebook-graph-api facebook-ios-sdk fbconnect


    【解决方案1】:

    我通过创建一个单例类来处理同样的问题。 每当我使用 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];
    
    }
    

    【讨论】:

    • 感谢您的回答,但我怎样才能从 facebook 应用程序获取令牌和凭据。 NSString *accessToken = [[FBSession.activeSession accessTokenData] accessToken];返回给我null
    • 检查 /////////////////////////////////////////////////NSString * accessToken = [sharedFacebookHelper.session.accessTokenData accessToken]; ////////////////////////////////////////
    • 你认为它会使用官方 facebook 应用凭据吗?
    • 请阅读developers.facebook.com/docs/ios的文档。您基本上在这个论坛上问了 3 次相同的问题,但没有阅读文档本身。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多