こんにちは、Facebook iOS SDK を使い始めたばかりで、Facebook に簡単にサインインできますが、ユーザーのフルネームを取得して UILabel に表示する方法を理解するのに問題があります。また、私はUIViewControllerからこれを行っていますが、これまでインターネットで見たものはすべてアプリデリゲートで行われていますが、デリゲートから実行したくありません。適切な場所ではありませんこれはUIViewControllerに入れたいので、ボタンを押すとFacebookにサインインできます。Facebook SDK は、初めて使用するので複雑に思えます。
編集:私のコードの一部をここに示します。これはView Controllerにあります:
-(void)createfbInstance {
Facebook* fb = [[Facebook alloc] initWithAppId:FB_APP_ID andDelegate:self];
self.facebook = fb;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"]
&& [defaults objectForKey:@"FBExpirationDateKey"]) {
facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
}
if (![facebook isSessionValid]) {
NSArray* permissions = [[NSArray alloc] initWithObjects:@"user_about_me", nil];
[facebook authorize:permissions];
}
}
Facebookのチュートリアルのように設定してから、グラフのパスを指定してリクエストを送信してみます:
- (void)fbDidLogin {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults synchronize];
FBAppDelegate* appDelegate = (FBAppDelegate*)[[UIApplication sharedApplication] delegate];
[appDelegate.facebook requestWithGraphPath:@"name" andDelegate:self];
}
次に、リクエストの受信を試みます。
- (void)request:(FBRequest *)request didLoad:(id)result {
}
申し訳ありませんが、イライラしてそのメソッドからコードを削除しました。そして、デリゲートには Facebook プロパティがあります
@property (nonatomic, retain) Facebook* Facebook;
ファイルには他のコードがありますが、これが最も重要なコードのようです。