2012-08-30 14 views
11

sto usando la nuova Facebook SDK per pubblicare sul mio muro seguendo their instructionspubblicazione sulla mia bacheca di Facebook utilizzando il nuovo SDK

ho ottenuto l'autorizzazione dalla app, ma quando provo a pubblicare sto ottenendo un errore Error: HTTP status code: 400 di seguito vi metto il mio codice

- (void)viewDidLoad 
{ 
self.postParams = 
[[NSMutableDictionary alloc] initWithObjectsAndKeys: 
@"https://developers.facebook.com/ios", @"link", 
@"https://developers.facebook.com/attachment/iossdk_logo.png", @"picture", 
@"Facebook SDK for iOS", @"name", 
@"build apps.", @"caption", 
@"testing for my app.", @"description", 
nil]; 

[self.postParams setObject:@"hgshsghhgsls" forKey:@"message"]; 

[super viewDidLoad]; 
// Do any additional setup after loading the view, typically from a nib. 
} 

-(IBAction)Post{ 
AppDelegate *appDelegate = [UIApplication sharedApplication].delegate; 
[appDelegate openSessionWithAllowLoginUI:YES]; 


[FBRequestConnection startWithGraphPath:@"me/Mac" parameters:self.postParams HTTPMethod:@"POST" 
         completionHandler:^(FBRequestConnection *connection,id result,NSError *error) { 
          NSString *alertText; 
          if (error) { 
          alertText = [NSString stringWithFormat:@"error: domain = %@, code = %d, des = %d",error.domain, error.code,error.description]; 
          } 
          else 
          { 
          alertText = [NSString stringWithFormat:@"Posted action, id: %@",[result objectForKey:@"id"]]; 
          } 
          // Show the result in an alert 
          [[[UIAlertView alloc] initWithTitle:@"Result" message:alertText delegate:self cancelButtonTitle:@"OK!" 
          otherButtonTitles:nil]show]; 
         }]; 




} 

che cosa sto facendo male qui e ogni suggerimento sarà grande e questo nuovo SDK è una versione beta? o completo?

+0

puoi pubblicare l'intera riga di errore? Fai un NSLog (@ "% @", errore); Poi vedi l'intera descrizione, perché sta lanciando l'errore 400. Oppure pubblica il messaggio dell'uscita di avviso ... – Fab1n

+0

2012-08-30 14: 33: 05.225 NewFbLogin [1275: fe03] Errore: codice di stato HTTP: 400 – Ghouse

+0

Scusa per questa domanda sciocca, ma hai un accesso valido e Facebook sessione? Forse segui questo tutorial: https://developers.facebook.com/docs/tutorials/ios-sdk-tutorial/authenticate/ – Fab1n

risposta

4

finalmente ho risolto il problema per che devo cambiare l'Auth Token Parametro URLFragment nella mia pagina il permesso app allora sta lavorando

+0

posso sapere il motivo del voto negativo qui – Ghouse

+0

Ciao RispostaMe, puoi spiegare un po 'di più qual è stata la soluzione? Quando dici la tua pagina di autorizzazione dell'app, intendi su developer.facebook.com? Forse passo dopo passo cosa hai fatto? Grazie. – sixstatesaway

+5

sì su developer.facebook.com ho selezionato la mia app quindi modifica le impostazioni e nella pagina successiva ho selezionato i permessi che si trovano sul lato sinistro e in quell'opzione Parametro token di autenticazione che ho cambiato in opzione frammento URL .thats tutto quello che ho fatto e sta funzionando – Ghouse

12

Se si esegue in eventuali problemi, provare a girare la registrazione aggiungendo questo codice prima la richiesta di chiamata che ti interessa debug:

[FBSettings setLoggingBehavior:[NSSet setWithObjects:FBLoggingBehaviorFBRequests, FBLoggingBehaviorFBURLConnections, nil]];

+0

Grande tip Grazie per la condivisione. – JaredH

0

Ho usato questo quadro per il mio progetto. funziona correttamente questo è il mio codice correlato

-(IBAction)logIn:(id)sender; 
{ 
AppDelegate *appdelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
if (!FBSession.activeSession.isOpen) { 
    [appdelegate sessionOpener]; 
} 
else { 
    [self loginHelp]; 
} 

e la mia funzione sessionOpener è;

-(void) sessionOpener 

{

[FBSession sessionOpenWithPermissions:nil 
        completionHandler:^(FBSession *session, 
             FBSessionState status, 
             NSError *error) { 
         // session might now be open. 
         if (!error) { 
          [self.viewController loginHelp]; 
         } 
        }]; 

NSLog(@"%d", FBSession.activeSession.isOpen); 
NSLog(@"%@", FBSession.activeSession.description); 

}

funziona per me. potrebbe esserti utile.

0

controllo Sessione Pubblica autorizzazioni.

mi ha funzionato bene.

[FBSession openActiveSessionWithPublishPermissions:[[NSArray alloc] initWithObjects:@"publish_stream",@"email", nil] 
            defaultAudience:FBSessionDefaultAudienceFriends 
             allowLoginUI:YES 
           completionHandler:^(FBSession *session, 
                FBSessionState state, NSError *error) { 
            [self sessionStateChanged:session state:state error:error]; 
           }]; 
Problemi correlati