iOS 应用使用 Facebook 应用凭据

Posted

技术标签:

【中文标题】iOS 应用使用 Facebook 应用凭据【英文标题】:iOS app use Facebook app credential 【发布时间】: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:

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

【问题讨论】:

【参考方案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 次相同的问题,但没有阅读文档本身。

以上是关于iOS 应用使用 Facebook 应用凭据的主要内容,如果未能解决你的问题,请参考以下文章

iPhone / iOS Facebook SDK - 您可以在应用内登录并保留登录凭据吗?

当用户退出我的 iOS 应用程序时,下次他们尝试使用 Facebook 登录时,他们应该必须重新输入他们的登录凭据

浏览器从 facebook 应用程序检索 facebook 凭据

在 iOS 应用中处理多个 Facebook 用户登录

在 Parse ios SDK 中重新授权 Facebook 应用程序

Flutter 在 facebook 应用程序 android 和 ios 中打开 facebook 链接