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
I noticed that it depends on the URL that you are submitting. If the URL contains Facebook Open Graph then parameters from the URL Open Graph are shown and those parameters overwrite the ones you placed.
e.g. I am trying to share URL to my App Store. Every App Store link contains Facebook Open Graph so it doesn't work.
I think that Facebook recommends using publishing custom Open Graph stories in this case.