大家好我刚刚开始使用Facebook iOS SDK,我可以轻松登录Facebook,但我在弄清楚如何获取用户全名并在UILabel中显示它时遇到了问题。我也是从UIViewController做到这一点,到目前为止我在互联网上看到的所有内容都发生在app委托中,但是,我不希望它是从代表那里完成的,它只是不适合做的地方我希望它在UIViewController中,所以当按下按钮时你可以登录到Facebook。 Facebook SDK现在看起来很复杂,因为它是我第一次使用它。
编辑: 好吧继承我的一些代码。 这是在视图控制器中:
-(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;
文件中还有其他代码,但这似乎是最重要的代码。
答案 0 :(得分:1)
在您需要访问Facebook API的任何类别中,您需要包含以下文件(在头文件中):
#import "FBConnect.h"
#import "YOUR_APP_DELEGATE.h"
并让您的班级实现FBRequestDelegate
代表。
然后,为了使用它,您只需执行以下操作:
YOURAPPDELEGATE *appDelegate = (YOURAPPDELEGATE*)[[UIApplication sharedApplication] delegate];
通过它,您现在可以访问代理中的Facebook属性,允许您访问API。
现在您需要在视图控制器中添加方法- (void)request:(FBRequest *)request didLoad:(id)result
,以便接收响应。
现在你可以打电话了
[appDelegate.facebook requestWithGraphPath:@"APICALLHERE" andDelegate:self];
现在您将收到request:didLoad:
方法中的回复,然后您可以随意执行此操作。