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 凭据