2012-08-30 5 views
11

J'utilise le nouveau Facebook SDK publier sur mon mur en suivant their instructionspublication sur mon mur Facebook en utilisant les nouvelles sdk

Je suis l'autorisation de l'application, mais lorsque je tente de publier, je reçois une erreur Error: HTTP status code: 400 Ci-dessous je suis annonce mon code

- (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]; 
         }]; 




} 

ce que je fais mal ici et toute suggestion sera grand et ce nouveau SDK est une version bêta? ou un complet?

+0

pouvez-vous s'il vous plaît poster toute la ligne d'erreur? Faites un NSLog (@ "% @", erreur); Ensuite, vous voyez toute la description, pourquoi il lance l'erreur 400. Ou poster le message de votre sortie d'alerte ... – Fab1n

+0

2012-08-30 14: 33: 05.225 NewFbLogin [1275: fe03] Erreur: Code d'état HTTP: 400 – Ghouse

+0

Désolé pour cette question stupide, mais vous avez une connexion valide et facebook session? Peut-être suivre ce tut: https://developers.facebook.com/docs/tutorials/ios-sdk-tutorial/authenticate/ – Fab1n

Répondre

4

enfin je résolu le problème que je dois changer le paramètre token Auth à URLFragment dans ma page d'autorisation d'application il travaille

+0

puis-je savoir la raison de la baisse de vote ici – Ghouse

+0

Salut AnswerMe, pouvez-vous expliquer un peu plus quelle était la solution? Lorsque vous dites votre page d'autorisation d'application, voulez-vous dire sur developer.facebook.com? Peut-être pas à pas ce que vous avez fait? Merci. – sixstatesaway

+5

oui sur developer.facebook.com j'ai sélectionné mon application puis modifier les paramètres et dans la page suivante j'ai sélectionné les autorisations qui est sur le côté gauche et dans cette option de paramètre Auth Token j'ai changé pour l'option URL Fragment .thats tout ce que j'ai fait et travaille – Ghouse

12

Si vous rencontrez des problèmes, essayez de l'exploitation forestière en ajoutant ce code avant la demande que vous êtes intéressé à appeler le débogage:

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

+0

Great Astuce Merci de partager. – JaredH

0

i utilisé ce cadre pour mon projet. ça fonctionne correctement. c'est mon code associé

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

et ma fonction sessionOpener est;

-(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); 

}

ça marche pour moi. peut vous être utile.

0

Vérifiez les autorisations de publication de session.

cela m'a bien fonctionné.

[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]; 
           }]; 
Questions connexes