2012-08-29 1 views
0

J'essaie de faire en sorte que mon application interagisse avec Facebook. J'utilise leur Facebook iOS SDK (3.0) et Xcode 4.2. Jusqu'à présent, j'ai mis en œuvre une méthode de connexion qui demande également les autorisations appropriées pour mon application. Cette méthode est appelée lorsque je clique sur un bouton d'un contrôleur de vue, la méthode se trouvant dans le délégué de l'application. Maintenant, ce que je veux après la connexion est de poster une photo sur le mur des utilisateurs; le contrôleur de vue dans lequel ce bouton réside est une visionneuse de photo et donc j'ai l'image à portée de main. Mes problèmes que chaque méthode que j'ai vu pour poster une image sur le mur inclut avoir un objet de type Facebook dans le délégué de l'application. Pour que cela soit possible, vous devez importer Facebook.h, qui est obsolète et l'ajouter manuellement au projet afin qu'il puisse être importé provoque beaucoup d'erreurs. Alors, comment puis-je faire cela? Comment déclarez-vous cet objet Facebook avec l'en-tête obsolète? Ou pouvez-vous le faire sans l'objet Facebook dans le nouveau SDK?Publier l'image sur le mur Facebook de l'utilisateur à partir de l'application iOS


Ok. Donc, je partiellement résolu avec ceci:

 - (void)facebookButtonHit:(id)sender{ 
    DrillDownAppAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; 
     [appDelegate openSessionWithAllowLoginUI:YES]; 
    if(FBSessionStateOpen){ NSString *[email protected]""; 
    NSString *[email protected]""; 
     //seteaza link-ul postului 
    if([self.optiune isEqualToString:@"SETURI TEMATICE"]){ 
     [email protected]"http://www.calinevents.com/seturi.html";} 
     [email protected]"SET TEMATIC CALIN EVENTS MODEL "; 
     NSInteger i=_pageIndex+1; 
     NSString *mno=[NSString stringWithFormat:@"%i",i]; 
     captt= [captt stringByAppendingString:mno]; 
     //seteaza parametrii postului 
    NSString *Path1 = [[NSBundle mainBundle] bundlePath]; 
    NSString *Datele1 = [Path1 stringByAppendingPathComponent:@"Seturi.plist"]; 
    NSDictionary *tempDict = [[NSDictionary alloc] initWithContentsOfFile:Datele1]; 
    NSDictionary *tempdicty=[[tempDict objectForKey:@"Rows"] objectAtIndex:_pageIndex]; 
      NSString *tempurl=[tempdicty objectForKey:@"URL"]; 
    NSMutableDictionary *postParams = [[NSMutableDictionary alloc] initWithObjectsAndKeys: 
    linkul, @"link", 
    tempurl, @"picture", 
    @"Imi place acest produs Calin Events", @"name", 
    captt, @"caption", 
    @"  ",@"description", 
    nil]; 

     //posteaza pe Facebook 
    UIAlertView *incarcare=[[UIAlertView alloc] initWithTitle:@"" 
           message:@"Se publica imaginea...\nVa rugam asteptati" 
           delegate:self 
         cancelButtonTitle:nil 
         otherButtonTitles:nil]; 
    [incarcare setBackgroundColor:[UIColor blackColor]]; 
    [incarcare show]; 
    [FBRequestConnection 
    startWithGraphPath:@"me/feed" 
    parameters:postParams 
    HTTPMethod:@"POST" 
    completionHandler:^(FBRequestConnection *connection, 
         id result, 
         NSError *error) { 
     NSString *alertText; 
     if (error) { 
      alertText = [NSString stringWithFormat: 
          @"S-a produs o eroare!\n Va rugam incercati din nou.", 
          error.domain, error.code]; 
     } else { 
      alertText = [NSString stringWithFormat: 
          @"Imaginea a fost postata cu succes!\n Va multumim!", 
          [result objectForKey:@"id"]]; 
     } 
     // Show the result in an alert 

     [[[UIAlertView alloc] initWithTitle:@"" 
            message:alertText 
            delegate:self 
          cancelButtonTitle:@"OK!" 
          otherButtonTitles:nil] 
      show]; 
     [incarcare dismissWithClickedButtonIndex:0 animated:YES]; 
    }]; 
    } 
} 

Mais maintenant, je reçois l'erreur suivante. La première fois que cette action est appelée, elle donne un code d'erreur = 5, code d'état HTTP = 400; la prochaine fois que le bouton est touché, cela fonctionne et l'image est affichée avec toutes les informations correctement. La prochaine fois que le bouton est touché, il renvoie à nouveau l'erreur, la prochaine fois qu'il publie correctement. Et donc ça va erreur, publier, erreur, publier, etc. Que puis-je faire pour résoudre ce problème?

Répondre

0

J'ai changé les premières lignes du code à cela, et maintenant il est OK:

DrillDownAppAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; 
    if(![FBSession.activeSession isOpen]){[appDelegate openSessionWithAllowLoginUI:YES]; 
              } 
    if([FBSession.activeSession isOpen]){[appDelegate openSessionWithAllowLoginUI:NO];} 
Questions connexes