Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sending a link with Facebook Message Dialog ignoring all params

I am trying to share/send a link to friends via the new Facebook Message Dialog which was implemented in v2.0.

I have been following the direction from the docs: https://developers.facebook.com/docs/ios/share#message-dialog-getting-started and this is what I have tried:

    [FBDialogs presentMessageDialogWithLink:[NSURL URLWithString:@"http://XXX.net/"] name:@"NAME" caption:@"CAPTION" description:@"DESCRIPTION" picture:nil clientState:nil handler:^(FBAppCall *call, NSDictionary *results, NSError *error) {
            if(error) {
                // An error occurred, we need to handle the error
                // See: https://developers.facebook.com/docs/ios/errors
                NSLog([NSString stringWithFormat:@"Error messaging link: %@", error.des

cription]);
        } else {
            // Success
            NSLog(@"result %@", results);
        }
    }];

and this: (should be the same thing)

FBLinkShareParams *params = [[FBLinkShareParams alloc] init];
    params.link = [NSURL URLWithString:@"http://xxx.net/"];
    params.name = @"NAME";
    params.caption = @"CAPTION";
    //params.picture = [NSURL URLWithString:@"http://upload.wikimedia.org/wikipedia/en/c/cd/Aller_Media_logo.png"];
    params.linkDescription = @"DESCRIPTION";

    [FBDialogs presentMessageDialogWithParams:params clientState:nil
                                    handler:^(FBAppCall *call, NSDictionary *results, NSError *error) {
                                        if(error) {
                                            // An error occurred, we need to handle the error
                                            // See: https://developers.facebook.com/docs/ios/errors
                                            NSLog([NSString stringWithFormat:@"Error messaging link: %@", error.description]);
                                        } else {
                                            // Success
                                            NSLog(@"result %@", results);
                                        }
                                    }];

Both of these methods brings up my Facebook messenger app with the dialog pre-filled with my parameters. BUT when I have sent the message everything except for the link is GONE at the receiver's end.

From what I understand the user should not have to be logged in via the app to be able to send messages from the Facebook Message Dialog.

Does anyone have a clue what is going on here? Is this a Facebook Bug?

EDIT: This has been confirmed as a facebook-bug: https://developers.facebook.com/bugs/1547232035503916

like image 660
PaperThick Avatar asked May 22 '14 13:05

PaperThick


1 Answers

Although this bug was fixed in June 2014, it is still possible to have similar problems with the latest Facebook example code. In the latest example "FBShareSample" and in the Facebook "Sharing in iOS" documentation they use the method

[FBDialogs presentShareDialogWithLink:....] 

which only uses the link from the parameters and none of the rest of the parameters (although the fallback example Feed Dialog actually does use all the parameters). In order to use all the parameters in the Share Dialog you need to use

[FBDialogs presentShareDialogWithParams:...]
like image 53
nickt Avatar answered Oct 13 '22 05:10

nickt