とても簡単な質問があります。
FB チュートリアルhttps://developers.facebook.com/docs/mobile/ios/build/didFinishLaunchingWithOptions
では、アプリケーションの起動直後にログインが開始されます。
タップでログインしてからcallback
、FB ウォールでメッセージを送信する必要があります。Hackbook アプリのサンプル デザイン アプリケーションは、この目的には複雑すぎると思います。
これを達成する最も簡単な方法は何ですか?
UPD: Hackbookの例に従いましたが、ViewControllers
まだ取得できませんでしたcallback
:(
yAppDelegate.h:
#輸入 #import "FBConnect.h" @interface yAppDelegate : UIResponder { フェイスブックフェイスブック; } @property (強力、非アトミック) UIWindow *window; @property (非アトミック、保持) Facebook *facebook; @終わり
yAppDelegate.m:
#import "yAppDelegate.h" #import "yViewController.h" static NSString* kAppId = @"350435425024264"; @実装 yAppDelegate @synthesize ウィンドウ = _window; @synthesize フェイスブック; - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { yViewController *viewController = [[yViewController alloc] init]; facebook = [[Facebook 割り当て] initWithAppId:kAppId andDelegate:viewController]; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; if ([defaults objectForKey:@"FBAccessTokenKey"] && [defaults objectForKey:@"FBExpirationDateKey"]) { facebook.accessToken = [デフォルト objectForKey:@"FBAccessTokenKey"]; facebook.expirationDate = [デフォルト objectForKey:@"FBExpirationDateKey"]; } はいを返します。 } - (void)applicationDidBecomeActive:(UIApplication *)アプリケーション{ [[self facebook] extendsAccessTokenIfNeeded]; } - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { return [self.facebook handleOpenURL:url]; } - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication 注釈:(id)annotation { return [self.facebook handleOpenURL:url]; }
yViewController.h:
#輸入 #import "FBConnect.h" @interface yViewController : UIViewController { NSArray *パーミッション; } @property (非アトミック、保持) NSArray *パーミッション。 @終わり
yViewController.m
#import "yViewController.h" #import "yAppDelegate.h" #import "FBConnect.h" @interface yViewController () @終わり @実装 yViewController @synthesize パーミッション; - (IBAction)buttonPressed:(UIButton *)送信者 { NSLog(@"ボタンが押されました!"); permissions = [[NSArray alloc] initWithObjects:@"offline_access", nil]; yAppDelegate *delegate = (yAppDelegate *)[UIApplication sharedApplication].delegate; if (![[フェイスブックのデリゲート] isSessionValid]) { [[facebook のデリゲート] 承認:権限]; } そうしないと { //[自己 showLoggedIn]; } NSLog(@"ログイン!!"); } - (void)viewDidLoad { [super viewDidLoad]; // 通常はペン先からビューをロードした後、追加のセットアップを行います。 } - (void)viewDidUnload { [super viewDidUnload]; // メイン ビューの保持されているサブビューを解放します。 } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation が必要です { return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); } #pragma mark - FBSessionDelegate メソッド /** * ユーザーが正常にログインしたときに呼び出されます。 */ - (void)fbDidLogin { NSLog(@"ログインしました"); } -(void)fbDidExtendToken:(NSString *)accessToken expiresAt:(NSDate *)expiresAt { NSLog(@"トークン拡張"); } /** * ユーザーが承認ダイアログをキャンセルしたときに呼び出されます。 */ -(void)fbDidNotLogin:(BOOL)キャンセル { NSLog(@"fbDidNotLogin"); } /** * リクエストのログアウトが成功したときに呼び出されます。 */ - (void)fbDidLogout { NSLog(@"fbDidLogout"); // 保存されている承認情報が存在する場合は削除します。 // クリアしてもいい (ログアウト、セッション無効、アプリ無許可) NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [デフォルト removeObjectForKey:@"FBAccessTokenKey"]; [デフォルト removeObjectForKey:@"FBExpirationDateKey"]; [デフォルト同期]; } /** * セッションの有効期限が切れたときに呼び出されます。 */ - (void)fbSessionInvalidated { NSLog(@"fbSessionInvalidated"); [自己 fbDidLogout]; } #pragma mark - FBRequestDelegate メソッド /** * Facebook API リクエストがレスポンスを返したときに呼び出されます。 * * このコールバックにより、生の応答にアクセスできます。前に呼ばれた * (void)request:(FBRequest *)request didLoad:(id)result, * 解析された応答オブジェクトが渡されます。 */ - (void)request:(FBRequest *)request didReceiveResponse:(NSURLResponse *)response { //NSLog(@"受信応答"); } /** * リクエストが返され、そのレスポンスが解析されたときに呼び出されます * オブジェクト。 * * 結果のオブジェクトは、辞書、配列、または文字列のいずれかになります。 * API レスポンスの形式について。生の応答にアクセスする必要がある場合は、 * 使用する: * * (void)request:(FBRequest *)request * didReceiveResponse:(NSURLResponse *) 応答 */ - (void)request:(FBRequest *)request didLoad:(id)result { NSLog(@"-(void)request"); } /** * エラーにより Facebook API リクエストが完了できない場合に呼び出されます * 成功しました。 */ - (void)request:(FBRequest *)request didFailWithError:(NSError *)error { NSLog(@"エラー メッセージ: %@", [[エラー userInfo] objectForKey:@"error_msg"]); NSLog(@"エラーコード: %d", [エラーコード]); } @終わり