2012-07-12 10 views
7

Zajmuję Facebook Chat aplikacji przy użyciu xmppframework.I dostał Facebook dostępu żeton ale
dostęp ten nie jest uwierzytelnienie przez obiekt xmppstream:jak mogę uwierzytelniać Facebook token dostępu z użyciem przedmiotu xmppstream w iPhone

Oto moja metoda setupStream

- (void)setupStream 
{ 
    XMPPStream *xmppStream=[[XMPPStream alloc] initWithFacebookAppId:@"443170809037796"]; 
} 

tutaj jest moja metoda połączenia

-(BOOL)connect1 
{ 
    NSLog(@"connect1"); 
    NSError *error = nil; 
    if(![xmppStream isDisconnected]) 
    { 
     NSLog(@"isDisconnected"); 
     return YES; 
    } 
    if (![xmppStream connect:&error]) 
    { 
     UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error connecting fb" 
                  message:@"See console for error details." 
                  delegate:nil 
                cancelButtonTitle:@"Ok" 
                otherButtonTitles:nil]; 
     [alertView show]; 
     return NO; 
    } 
    return YES; 
} 

tutaj jest moja metoda xmppStreamDidconnect delegat do uwierzytelniania

- (void)xmppStreamDidConnect:(XMPPStream *)sender 
{ 
    isXmppConnected = YES; 
    NSError *error = nil; 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    [xmppStream authenticateWithFacebookAccessToken:[defaults    objectForKey:@"FBAccessTokenKey"] error:&error];   
} 

kiedy uruchomić tę aplikację jestem uzyskiwanie błąd odłogowania

didNotAuthenticate

Może ktoś rozwiązać mój problem plz.

+0

Jeśli rozwiązać ten problem, proszę o komentarz. Mam również problem. Dzięki – Shamsiddin

Odpowiedz

0
http://benbiddington.wordpress.com/2010/04/23/facebook-graph-api-getting-access-tokens/ 


http://www.raywenderlich.com/1488/how-to-use-facebooks-new-graph-api-from-your-iphone-app 

Jak uwierzytelnić użytkownika z Graph API

Jak działa uwierzytelnianie OAuth Aby uwierzytelniać użytkowników na Facebooku, Graph API używa protokołu OAuth 2.0 nowy. Nie martw się - nazwa brzmi imponująco, ale sposób, w jaki działa, jest naprawdę prosty. Chodzi o to, że tworzysz aplikację za pomocą portalu dewelopera Facebooka, a gdy to zrobisz, otrzymasz unikalny identyfikator aplikacji o nazwie Klucz API. Następnie, jeśli chcesz zalogować użytkownika do serwisu Facebook, przejdź do następującego adresu URL w przeglądarce: https://graph.facebook.com/oauth/authorize? client_id = [Twój klucz API] & redirect_uri = http://www.facebook.com/connect/login_success.html& zakres = [rozszerzone uprawnienia chcesz] & type = user_agent & wyświetlacz = dotknąć użytkownik zobaczy standardowego Facebook stronę logowania i mogą wchodzić w jego nazwę i hasło i podaj wymagane uprawnienia. Nie musisz implementować redirect_uri samemu - możesz po prostu użyć presetu z Facebooka, jak pokazano powyżej. Wstępnie zdefiniowany oddzwonienie zwróci Ci token dostępu, który jest niezbędny do wykonania wszystkich przyszłych żądań. Gdy użytkownik się loguje, Facebook przechowuje pewne informacje o logowaniu w plikach cookie. Gdy następnym razem spróbujesz się zalogować, jeśli ciasteczka nie wygasną, logowanie zakończy się automatycznie bez interwencji użytkownika!

1

facebook czat korzysta z bezpiecznego połączenia zatem metoda connect powinien wyglądać ten

- (void)xmppStreamDidConnect:(XMPPStream *)sender 
{ 
    DDLogVerbose(@"%@: %@", THIS_FILE, THIS_METHOD); 

    isXmppConnected = YES; 

    NSError *error = nil; 
    //facebook connection 
    if (_streamType == AAConnectStreamTypeFacebook) { 

     if (![xmppStream isSecure]) 
     { 

      NSError *error = nil; 
      BOOL result = [xmppStream secureConnection:&error]; 

      if (result == NO) 
      { 
       DDLogError(@"%@: Error in xmpp STARTTLS: %@", THIS_FILE, error); 

      } 
     } 
     else 
     { 

      NSError *error = nil; 
      BOOL result = [xmppStream authenticateWithFacebookAccessToken:FBSession.activeSession.accessTokenData.accessToken error:&error]; 

      if (result == NO) 
      { 
       DDLogError(@"%@: Error in xmpp auth: %@", THIS_FILE, error); 

      } 
     } 
    } 
    else if (![[self xmppStream] authenticateWithPassword:password error:&error]) 
    { 

     DDLogError(@"Error authenticating: %@", error); 
    } 
} 
+0

co to jest "_streamType == AAConnectStreamTypeFacebook" Otrzymuję błąd w tej –

+0

jego zmiennej typu strumienia, ponieważ jeśli używasz innej usługi, takiej jak Google Chat, jej inny tryb połączenia/auth –

+0

, jak wysłać wiadomość z aplikacji do fb ? –

Powiązane problemy