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?