2011-07-31 2 views
0

Lorsque je me connecte à Facebook via mon application, tout fonctionne, mais j'ai des problèmes pour poster sur les murs.Problème lors de la publication sur Facebook

- (NSString *) postToFBWallStatus:(NSString *) status andSetDelegate: (id) delegate 
{ 
    if (! isFBLoggedIn) 
    { 
     return @"NotLoggedin"; 
    } 

    NSString *message = status; 
    NSLog(@"Appdelegate: postToFBWallStatus:andSetDelegate:"); 
    NSLog(@"to be delegate class: %@",[delegate class]); 

    NSURL *url = [NSURL URLWithString:@"https://graph.facebook.com/me/feed"]; 

    ASIFormDataRequest *newRequest = [ASIFormDataRequest requestWithURL:url]; 
    [newRequest setPostValue:message forKey:@"message"]; 
    [newRequest setPostValue:@"" forKey:@"name"]; 
    [newRequest setPostValue:@"" forKey:@"caption"]; 
    [newRequest setPostValue:@"" forKey:@"description"]; 
    [newRequest setPostValue:@"" forKey:@"link"]; 
    [newRequest setPostValue:@"" forKey:@"picture"]; 
    [newRequest setPostValue:_accessToken forKey:@"access_token"]; 
    [newRequest setDidFinishSelector:@selector(postToWallFinished:)]; 
    [newRequest setDidFailSelector:@selector(postToWallFailed:)]; 
    [newRequest setDelegate:delegate]; 
    [newRequest startAsynchronous]; 

    return @"Loggedin"; 
} 

Je reçois ce message quand je poste sur le mur Facebook:

error =     { 
       message = "Invalid access token signature."; 
       type = OAuthException; 
   }; 
+1

J'ai eu le même problème. Le problème était que ma base de données tronquait le jeton d'accès parce que j'avais la colonne qui le stocke en tant que VARCHAR (100). Il s'avère que 100 caractères ne suffisent pas pour certains jetons d'accès. Le jeton d'accès envoyé n'était donc pas valide. –

+0

Comment obtenez-vous la valeur du jeton d'accès? – jBit

+0

Vous allez devoir vous enregistrer sur Facebook pour obtenir une clé Oauth, puis l'utilisateur doit approuver l'application avant qu'elle ne fonctionne. –

Répondre

0

Vous devez utiliser access_token de l'utilisateur d'afficher des informations à leur mur. En outre, l'utilisateur doit autoriser l'autorisation publish_stream pour que l'appel de l'API fonctionne. Lorsque vous authentifiez l'utilisateur, ajoutez publish_stream à la portée des autorisations.

Questions connexes