2010-12-12 7 views
2

J'ai l'application facebook démo et sans aucune modification Voici le code:lien de poste en utilisant facebook sdk sur iphone

SBJSON *jsonWriter = [[SBJSON new] autorelease]; 

    NSDictionary* actionLinks = [NSArray arrayWithObjects:[NSDictionary dictionaryWithObjectsAndKeys: 
           @"Always Running",@"text",@"http://itsti.me/",@"href", nil], nil]; 

    NSString *actionLinksStr = [jsonWriter stringWithObject:actionLinks]; 
    NSDictionary* attachment = [NSDictionary dictionaryWithObjectsAndKeys: 
           @"a long run", @"name", 
           @"The Facebook Running app", @"caption", 
           @"it is fun", @"description", 
           @"http://itsti.me/", @"href", nil]; 
    NSString *attachmentStr = [jsonWriter stringWithObject:attachment]; 
    NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
           @"Share on Facebook", @"user_message_prompt", 
           actionLinksStr, @"action_links", 
           attachmentStr, @"attachment", 
           nil]; 


    [_facebook dialog:@"feed" 
      andParams:params 
     andDelegate:self]; 

Cela ne postez pas un lien, il fait, il n'affiche un état normal qui l'utilisateur entre.

Comment afficher un lien en utilisant le SDK Facebook sur un iPhone, en utilisant la nouvelle version de facebook (le api graphique?)

Je ne trouve nulle part sur la façon de poster un lien à partir d'un iPhone application en utilisant le Facebook SDK.

Répondre

7
[_facebook dialog:@"feed" 
     andParams:params 
    andDelegate:self]; 

Le problème est que Facebook a mis à jour l'API sur le Web, mais pas le SDK, alors que @"feed" est le nom correct pour le dialogue après la mise à jour de l'API, l'ancien nom stream.publish est toujours utilisé dans le code. Par conséquent, pour obtenir les params de travailler et fait partie du message que vous devez utiliser:

[_facebook dialog:@"stream.publish" 
     andParams:params 
    andDelegate:self] 

Source here

Voir aussi la réponse de iPortable pour une autre erreur par facebook.

2

comment cela peut-il être? vous créez un NSArray, mais mettez-le dans un NSDictionary:

NSDictionary* actionLinks = [NSArray arrayWithObjects:[NSDictionary dictionaryWithObjectsAndKeys: 
           @"Always Running",@"text",@"http://itsti.me/",@"href", nil], nil]; 

// EDIT 2: ok comme mentionné il devrait être NSArray* actionLinks = …

+0

LOL @ facebook, c'est le code d'exemple facebook, pas même le mien. Merci, j'ai trouvé le vrai problème que je vais mettre dans une réponse, mais vous obtenez la prime. –

+0

bien dans 22 heures de toute façon, stupides limites SO. –

+0

Juste essayé votre réponse, et c'est en fait le premier NSDictionary qui est faux, alors gardez le tableau après le = et changez le premier mot à NSArray. Vous ne pouviez pas savoir, et encore merci d'avoir repéré cela. –

Questions connexes