0
我已經將facebook集成到了我的ios應用程序中,它工作的很好。 但是,當我存儲我的FB憑據設置它不起作用。 它將出現在以下狀態FB集成在ios應用程序問題
- (void)sessionStateChanged:(FBSession *)session
state:(FBSessionState) state
error:(NSError *)error
{
switch (state) {
case FBSessionStateOpen:
NSLog(@"case open session");
// if([sharePref returnFbName].length==0)
[self listFriendsFB];
break;
case FBSessionStateClosed:
NSLog(@"case FBSessionStateClosed session");
case FBSessionStateClosedLoginFailed:
// Once the user has logged in, we want them to
// be looking at the root view.
//[viewController popToRootViewControllerAnimated:NO];
[FBSession.activeSession closeAndClearTokenInformation];
NSLog(@"case close or fail session");
break;
default:
break;
}
它去在FBSessionStateClosedLoginFailed,併發生錯誤。 如果我從手機中刪除我的帳戶,設置它工作正常,即會話打開並且它已正確登錄。 這裏是我的代碼
- (void)openSession
{
//[self syncFacebookAccount];
NSArray *permissions=[[NSArray alloc]initWithObjects:@"email,publish_actions",nil];
dispatch_async(dispatch_get_main_queue(), ^{
[FBSession openActiveSessionWithReadPermissions:permissions
allowLoginUI:YES
completionHandler:
^(FBSession *session,
FBSessionState state, NSError *error) {
NSLog(@"fb open session");
[self sessionStateChanged:session state:state error:error];
}];
});
}
- (void)sessionStateChanged:(FBSession *)session
state:(FBSessionState) state
error:(NSError *)error
{
switch (state) {
case FBSessionStateOpen:
NSLog(@"case open session");
// if([sharePref returnFbName].length==0)
[self fourthViewInitialization];
[self getFacebookInfo];
break;
case FBSessionStateClosed:
NSLog(@"case FBSessionStateClosed session");
case FBSessionStateClosedLoginFailed:
// Once the user has logged in, we want them to
// be looking at the root view.
//[viewController popToRootViewControllerAnimated:NO];
[FBSession.activeSession closeAndClearTokenInformation];
NSLog(@"case close or fail session");
break;
default:
break;
}
if (error) {
UIAlertView *alertView = [[UIAlertView alloc]
initWithTitle:AlertTitle
message:@"We are currently facing facebook connectivity issues. Please try again later!"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
NSLog(@"error facebook : %@",error);
[alertView show];
[self hideActivityIndicator];
}
}
#pragma facebook methods
-(void)getFacebookInfo
{
// [NSThread detachNewThreadSelector:@selector(startLoader) toTarget:self withObject:nil];
NSString *query =[NSString stringWithFormat:@"Select name,uid,pic_square from user where uid=me()"];
// Set up the query parameter
my_info=[[NSMutableDictionary alloc]init];
my_info_array=[[NSMutableArray alloc ]init];
NSDictionary *queryParam =
[NSDictionary dictionaryWithObjectsAndKeys:query, @"q", nil];
// Make the API request that uses FQL
[FBRequestConnection startWithGraphPath:@"/fql"
parameters:queryParam
HTTPMethod:@"GET"
completionHandler:^(FBRequestConnection *connection,
id result,
NSError *error) {
if (error) {
NSLog(@"Error: %@", [error localizedDescription]);
[self hideActivityIndicator];
} else {
// NSLog(@"Result: %@", result);
// [self hideActivityIndicator];
my_info_array=(NSMutableArray *)[result objectForKey:@"data"];
my_info=[my_info_array objectAtIndex:0];
//NSLog(@"my info array %@",my_info_array);
NSLog(@"my info from fb %@",my_info);
//return my_info;
[firstView removeFromSuperview];
[self.view addSubview:fourthView];
displayNameLabel.text=[NSString stringWithFormat:@"%@%@",displayNameLabel.text,[my_info objectForKey:@"name"]];
[registerRequest setObject:[my_info objectForKey:@"name"] forKey:@"displayName"];
//[registerRequest setObject:[my_info objectForKey:@"email"] forKey:@"emailId"];
[registerRequest setObject:[my_info objectForKey:@"uid"] forKey:@"uid"];
[SharedPreferenceClass setFBUID:[my_info objectForKey:@"uid"]];// 30 sept
[registerRequest setObject:[my_info objectForKey:@"pic_square"] forKey:@"profilePic"];
NSString* picPath = [my_info objectForKey:@"pic_square"];
if (picPath.length>0) {
[SharedPreferenceClass setUserProfilePictureDefault:picPath];
}else{
[SharedPreferenceClass setUserProfilePictureDefault:@""];
}
//displayName.text=[my_info objectForKey:@"name"];
[self hideActivityIndicator];
}
}];
}
在此先感謝。
http://stackoverflow.com/questions/12661104/ios6-facebook-integration-login-always-fbsessionstateclosedloginfailed-never-ope – vin
感謝您的答覆,但它不是爲我工作! – Raj
您是否嘗試過使用這種方法 - (BOOL)應用程序:(UIApplication *)應用程序 openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation – vin