после того, как я прочитал несколько ссылок в Интернете, я решил использовать Facebook SDK for iOS
вместо XCode Social Framework
.Facebook iOS SDK: Ошибка входа с Facebook
Потому что то, что мне нужно в моем приложении, - это 'login with facebook' сеанс, и я следую его примеру кода с именем SessionLoginSample в папке Sample, но он не работает, когда я накладываю свой код. Этот код был успешно создан на iPad-симуляторе, но когда я нажимаю кнопку, ничего не происходит.
Не могли бы вы показать мне, где я пропускал здесь ... спасибо ...
У меня есть этот AppDelegate.h:
#import <UIKit/UIKit.h>
#import <FacebookSDK/FacebookSDK.h>
@class ViewController;
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) ViewController *viewController;
@property (strong, nonatomic) FBSession *session;
@end
и вот мой AppDelegate.m :
#import "AppDelegate.h"
#import "ViewController.h"
@implementation AppDelegate
@synthesize window = _window;
@synthesize viewController = _viewController;
@synthesize session = _session;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application
{
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
[FBAppEvents activateApp];
[FBAppCall handleDidBecomeActiveWithSession:self.session];
}
- (void)applicationWillTerminate:(UIApplication *)application
{
[self.session close];
}
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
// attempt to extract a token from the url
return [FBAppCall handleOpenURL:url
sourceApplication:sourceApplication
withSession:self.session];
}
#pragma mark Template generated code
@end
мой ViewController.h:
#import <UIKit/UIKit.h>
#import <FacebookSDK/FacebookSDK.h>
@interface ViewController : UIViewController
@property (strong, nonatomic) IBOutlet UITextField *fieldEmail;
@property (strong, nonatomic) IBOutlet UITextField *fieldPassword;
@property (strong, nonatomic) IBOutlet UILabel *titleLogin;
@property (strong, nonatomic) IBOutlet UILabel *labelOutput;
- (IBAction)buttonRegister;
- (IBAction)buttonLogin;
- (IBAction)loginFacebook;
- (IBAction)loginTwitter;
@end
мой ViewController.m:
#import "ViewController.h"
#import "AppDelegate.h"
@interface ViewController()
@property (strong, nonatomic) UINavigationController* navController;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}
- (void) alertWithTitle:(NSString *)title andMessage:(NSString *)msg
{
UIAlertView *message = [[UIAlertView alloc] initWithTitle:title
message:msg
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[message show];
}
- (IBAction)loginFacebook {
AppDelegate *appDelegate = [[UIApplication sharedApplication]delegate];
if (appDelegate.session.isOpen) {
[appDelegate.session closeAndClearTokenInformation];
} else {
if (appDelegate.session.state != FBSessionStateCreated) {
appDelegate.session = [[FBSession alloc] init];
}
[appDelegate.session openWithCompletionHandler:^(FBSession *session,
FBSessionState status,
NSError *error) {
[self alertWithTitle:(@"FB Login") andMessage:(@"It works!!")];
}];
} }
}
@end
UPDATE: Я добавить FacebookSDK.framework под Framework папку на моем проекте, а также модифицированный файл Plist, основанный на this introduction тоже:
Проверьте устройство, предоставили ли вы разрешение на использование приложения, над которым работаете, и уже зарегистрировались ли вы с приложением facebook на устройстве. Проверьте все этапы, а затем запустите приложение. device.i думаю, тогда он будет обучать страницу входа для входа в facebook. – sac
Я устанавливаю/запускаю это приложение на своем iPad, поэтому считаю, что у моего устройства уже есть разрешение. Я также создал приложение в своей учетной записи Facebook. И поскольку это новое приложение, и поскольку кнопка не работает, я не авторизуюсь на своем устройстве. –
Надеясь, что вы выполнили все шаги, указанные в примере приложения. Вы можете проверить разрешения, предоставленные для использования настроек facebook для приложения, над которым вы работаете в ipad, путем перехода к настройкам. Я столкнулся с той же проблемой, и именно по этой причине он ничего не делал при нажатии кнопки facebook. Пожалуйста, проверьте это первым. В то же время я предоставил бы вам некоторые ссылки, которые у меня есть. – sac