2014-12-30 8 views
0

나는 문제가 있습니다. 내 응용 프로그램에 Facebook 계정에 로그인했을 때. 1 게시 당시 나는 normaly FBWall에서 잘 및 게시 작업이이 FBSession 반응을 얻고있다. 2 시간에서 session.state FBSessionStateCreated가 iOS에서 fb 벽에 게시하지 않습니다.

FBSESSION <FBSession: 0x1c31bbc0, state: FBSessionStateCreatedTokenLoaded, loginHandler: 0x0, appID: 524460600950223, urlSchemeSuffix: , tokenCachingStrategy:<FBSessionTokenCachingStrategy: 0x176c99b0>, expirationDate: 2015-02-27 10:42:15 +0000, refreshDate: 2014-12-30 06:24:28 +0000, attemptedRefreshDate: 0000-12-30 00:00:00 +0000, permissions:(
"create_note", 
"basic_info", 
"share_item", 
"read_stream", 
"status_update", 
"publish_actions", 
"user_friends", 
"publish_checkins", 
"video_upload", 
"export_stream", 
"publish_stream", 
"photo_upload", 
installed, 
email, 
"public_profile", 
"user_birthday", 
"user_status" 
)> 

은 이후 난에 아래에 표시된이 같은 FBSession 내가 sollution을 가지고 FBWall

FBSESSION <FBSession: 0x1d05fac0, state: FBSessionStateCreated, loginHandler: 0x0, appID: 524460600950223, urlSchemeSuffix: , tokenCachingStrategy:<FBSessionTokenCachingStrategy: 0x176c99b0>, expirationDate: (null), refreshDate: (null), attemptedRefreshDate: 0000-12-30 00:00:00 +0000, permissions:(null)> 

//This will happens at the time of Loginwithfacebook account... otherwise it will work fine 
//can any one help me. Thanks in advance 

답변

0

에 게시하지 않습니다 내가 무엇입니까 게시하려합니다. 우리는 페이스 북 계정으로 로그인 한 경우 필요가 그냥 u는 이전에 내 코드는 위에 위의

내가 방금 추가 한 다른 부분에 나타내는 같다

FBSession *session = [[FBSession alloc] init]; 

NSLog(@"FBSESSION %@", session); 

if (session.state == FBSessionStateCreatedTokenLoaded || session.state == FBSessionStateOpen) 
{ 

    [[[[iToast makeText:@"Post on wall success"] setGravity:iToastGravityBottom] setDuration:iToastDurationShort]show]; 
    // even though we had a cached token, we need to login to make the session usable 
    [session openWithCompletionHandler:^(FBSession *session, 
             FBSessionState status, 
             NSError *error) { 
     [FBSession setActiveSession:session]; 
     [FBRequestConnection startWithGraphPath:@"/me/feed" 
            parameters:params 
            HTTPMethod:@"POST" 
           completionHandler:^(FBRequestConnection *connection, id result, NSError *error){ 
            NSLog(@"error-- %@",error); 
           }]; 
    }]; 
} 

를 원하는 게시 .. 세션을 확인 없습니다 코드가 올바르게 작동합니다. 내 문제가 해결됩니다.

else 
{ 

[[[[iToast makeText:@"Post on wall success"] setGravity:iToastGravityBottom] setDuration:iToastDurationShort]show]; 
[FBRequestConnection startWithGraphPath:@"/me/feed" 
          parameters:params 
          HTTPMethod:@"POST" 
         completionHandler:^(FBRequestConnection *connection, id result, NSError *error){ 
          NSLog(@"error-- %@",error); 
         }]; 
} 
0

코드에서 아래 라인을 수정해야합니다 :

if (session.state == FBSessionStateCreatedTokenLoaded || session.state == FBSessionStateOpen) 

세션 상태, 다음 이미 열기가 외설 경우

if (session.state == FBSessionStateCreatedTokenLoaded || session.state == FBSessionStateCreated) 

에, 어떤 필요 열려 t에 FBSession 다시.

세션이 생성되거나 토큰이로드 된 경우 세션을 다시 열어야합니다.