Facebook -(void)请求:(FBRequest*)请求didLoad:(id)未调用结果
为什么这个方法从未调用过?谁能帮我检查代码,我是新手 这是我的*.h文件Facebook -(void)请求:(FBRequest*)请求didLoad:(id)未调用结果,facebook,facebook-graph-api,Facebook,Facebook Graph Api,为什么这个方法从未调用过?谁能帮我检查代码,我是新手 这是我的*.h文件 @interface LoginViewController : UIViewController <FBSessionDelegate,FBRequestDelegate,FBDialogDelegate> { Facebook *facebook; IBOutlet UITextField *_txt; NSString *facebookUserID; 我知道下面的方法将获得用
@interface LoginViewController : UIViewController <FBSessionDelegate,FBRequestDelegate,FBDialogDelegate> {
Facebook *facebook;
IBOutlet UITextField *_txt;
NSString *facebookUserID;
我知道下面的方法将获得用户ID,但它从未调用
- (void)request:(FBRequest *)request didLoad:(id)result
{
NSLog(@"Inside didLoad");
if ([result isKindOfClass:[NSArray class]])
{
result = [result objectAtIndex:0];
}
// When we ask for user infor this will happen.
if ([result isKindOfClass:[NSDictionary class]])
{
//NSDictionary *hash = result;
NSLog(@"Name: %@", [result objectForKey:@"name"]);
self.facebookUserID = [result objectForKey:@"id"];
NSLog(@"ID: %@", [result objectForKey:@"id"]);
}
}
您需要实现openURL或handleOpenURL(后者在ios 4.2之前)。它需要在应用程序代理中实现,而不是在视图控制器中实现 看。openURL将导致调用fbDidLogin
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
NSLog(@"============HANDLE OPEN URL");
ViewController *v =(ViewController *) vc;
return [[v facebook] handleOpenURL:url];
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
NSLog(@"============HANDLE OPEN URL");
ViewController *v =(ViewController *) vc;
return [[v facebook] handleOpenURL:url];
}