Facebook iOS SDK Dialog parameters

This is probably a n00b question, but nontheless... I have a bit of a problem using the Facebook SDK in my iPad app: when I display a dialog using [facebook dialog:@"feed" andDelegate:self]; I don't see any way I can change the title, the content or the URL of what I want to share.

In their Demo App, Facebook has the following code:

- (IBAction)publishStream:(id)sender {

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

}

However, when I press the publishStream button, none of those strings shows on the dialog! :S

Is there something I'm not doing right? all I changed in that Demo App was the Facebook kAppId and the URL Scheme.

Answers


I had the same problem. This is the solution I found: change your code in this way:

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

use stream.publish and not feed.


I realized this is already answered, but I found this to be the correct answer. It follows what FB has here. The image and/or link actually shows up in the dialog. stream.publish didn't make that change for me. Also, the dialog page says that the stream.publish is old.

NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                               @"http://developers.facebook.com/docs/reference/dialogs/", @"link",
                               @"http://fbrell.com/f8.jpg", @"picture",
                               @"Facebook Dialogs", @"name",
                               @"Reference Documentation", @"caption",
                               @"Dialogs provide a simple, consistent interface for apps to interact with users.", @"description",
                               @"Facebook Dialogs are so easy!",  @"message",
                               nil];


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

Hmm.. I haven't worked with the sample app, but I would think that you would need to do a POST if you want to post something to the wall. Check out this question and my answer here: Post to user's Facebook wall with iPhone using latest FBConnect SDK

To summarize, here is the method I used:

- (void)requestWithGraphPath:(NSString *)graphPath
                   andParams:(NSMutableDictionary *)params
               andHttpMethod:(NSString *)httpMethod
                 andDelegate:(id <FBRequestDelegate>)delegate;

like this:

[_facebook requestWithGraphPath:@"[user_id]/feed" 
                          andParams:[NSMutableDictionary dictionaryWithObject:@"test wall post" forKey:@"message"]
                      andHttpMethod:@"POST"
                        andDelegate:self];

to post a comment to [user_id]'s wall.


Need Your Help

Clamping lines without '-webkit-line-clamp'

css webkit flexbox

In the good old days, there existed a trick in webkit for clamping lines using pure css:

JQuery - animate moving DOM element to new parent?

javascript jquery dom jquery-ui animation

I have an image tag inside of a table cell, that I'd love to move to another table cell, and have that movement animated.