2012-11-05 3 views
1

안녕하세요, 지난 2 일 동안이 문제에 고심하고 있습니다. 전에는 문제가 없었지만 페이스 북에서 반환되는 액세스 토큰은 내가하는 일에 상관없이 언제나 null입니다.페이스 북을위한 널 액세스 토큰

사용 된 코드는 facebook connect IOS SDK입니다. 다른 앱에서도 똑같은 코드를 사용했지만 아무런 문제가 없었지만 어떤 이유로이 기능이 작동하지 않습니다.

인쇄중인 오류 코드도 없습니다.

감사합니다. 내가 sessionChangeState에서 사용

답변

0

,이 코드 :

FBRequest *request = [FBRequest requestForMe]; 
[request startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary *result, NSError *error) { 
    NSLog(@"access Token %@", FBSession.activeSession.accessToken); 
}]; 

그리고 그것은 나에게 액세스 토큰을 반환, 그것을 시도!

+0

괜찮습니다. – user281300

+0

여전히 토큰으로 null이 표시됩니다. – user281300

0

이 코드를 사용해보십시오. self.facebook.accessToken을 통해 액세스 토큰을 받으실 수 있습니다. view facebookbtnclicked 메서드를 호출하면 액세스 토큰을 가져 오거나로드하지 못했습니다.

facebook = [[Facebook alloc] initWithAppId:@"227757844008650"]; 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    if ([defaults objectForKey:@"FBAccessTokenKey"] 
     && [defaults objectForKey:@"FBExpirationDateKey"]) 
    { 

     facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"]; 
     facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"]; 

    } 
-(void)facebookbtnclicked 
{ 
    NSLog(@"facebook btn clicked"); 
    [self loginToFacebook:self]; 
} 

- (BOOL) isFaceBookLoggedIn 
{ 
    if (self.facebook.accessToken) 
    { 
     return YES; 

    } 
    else { 
     return NO; 
    } 
} 

- (void) logoutFromFacebook: (id) logoutDelegate 
{ 
    fbServiceRequestingobj = logoutDelegate; 
    [facebook logout:self]; 
} 

- (void)loginToFacebook:(id) loginDelegate 
{ 
    NSLog(@"login facebook method"); 

    fbServiceRequestingobj = loginDelegate; 

    NSArray* permissions = [[NSArray alloc] initWithObjects: 
          @"publish_stream", nil]; 
    [facebook authorize:permissions delegate:self]; 

} 
-(void) getuserdata 
{ 

    NSLog(@"[appDelegate getuserdata]"); 

    if (fbServiceRequestingobj) 
    { 
     fbServiceRequestingobj = nil; 
    } 

    [facebook requestWithGraphPath:@"me" andDelegate:self]; 


    [facebook requestWithGraphPath:@"me/friends" andDelegate:self]; 

} 
- (void)fbDidLogout 
{ 
    NSLog(@"Did Logout"); 

    if (fbServiceRequestingobj) 
    { 
     if ([fbServiceRequestingobj respondsToSelector:@selector(fbDidLogout)]) 
     { 
      [fbServiceRequestingobj performSelector:@selector(fbDidLogout)]; 
     } 
    } 
    fbServiceRequestingobj = nil; 
} 


- (void)request:(FBRequest *)request didFailWithError:(NSError *)error 
{ 

    if (fbServiceRequestingobj) 
    { 
     if ([fbServiceRequestingobj respondsToSelector:@selector(request:didFailWithError:)]) 
     { 
      [fbServiceRequestingobj request:request didFailWithError:error]; 
     } 
    } 
    fbServiceRequestingobj = nil; 
} 

-(void)fbDidNotLogin:(BOOL)cancelled 
{ 

    if (fbServiceRequestingobj) 
    { 
     if ([fbServiceRequestingobj respondsToSelector:@selector(fbDidNotLogin:)]) 
     { 
      //[fbServiceRequestingobj fbDidNotLogin:cancelled]; 
     } 
    } 
    fbServiceRequestingobj = nil; 
} 


- (void)fbDidLogin 
{ 

    NSLog(@"fbDidLogin"); 
    //[facebook requestWithGraphPath:@"me/friends" andDelegate:self]; 
    NSLog(@"accesstoken########%@",self.facebook.accessToken); 
} 


- (void)requestFinished:(ASIHTTPRequest *)request 
{ 
    count++; 
    NSError *error = [request error]; 

    if (!error) 
    { 
     NSString *response = [request responseString]; 

     NSDictionary *respdic=[response JSONValue]; 
     if(![[respdic valueForKey:@"id"] isEqualToString:@""]) 
     { 


      UIAlertView *alert1=[[UIAlertView alloc] initWithTitle:@"" message:@"Photo posted successfully." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
      [alert1 show]; 
     } 
    } 
} 

- (void)request:(FBRequest *)request didLoad:(id)result 
{ 


    if ([result isKindOfClass:[NSArray class]]) 
    { 
     result = [result objectAtIndex:0]; 
    } 

    if ([result isKindOfClass:[NSDictionary class]]) 
    { 

     } 


    } 
    if ([result isKindOfClass:[NSData class]]) 
    { 

     UIImage *profilePicture = [[UIImage alloc] initWithData: result]; 

    } 


    if (fbServiceRequestingobj) 
    { 
     if ([fbServiceRequestingobj respondsToSelector:@selector(request:didLoad:)]) 
     { 
      [fbServiceRequestingobj request:request didLoad:result]; 
     } 
    } 

    fbServiceRequestingobj = nil; 

}; 
+0

환호 모든 것을 다시 쓰고 최신 facebook SDK를 사용하여 해결했습니다. 문제의 원인을 아직 모릅니다. – user281300

관련 문제