Facebook Messenger SDK将文本分享给特定用户

时间:2015-08-13 02:26:45

标签: ios objective-c facebook facebook-graph-api messenger

我想要做的就是将我的应用程序链接到FB messenger,以便用户可以向他们的朋友发送消息。我有我所有用户的Fb ID,我想我可以用它来打开用户线程的信使。

SDK仅提供发送媒体的方式,但不提供允许用户发送纯文本的方法。如何允许用户通过Messenger将消息从我的应用程序发送给他们的朋友?

我试过这个

UIImage *image = [UIImage imageNamed:@"test.png"];
[FBSDKMessengerSharer shareImage:image withOptions:nil];

它按预期工作;它弹出到信使,图像准备就绪,让我选择用户并允许我输入更多文字。

如何在不需要通过媒体发送的情况下实现相同的功能? (使用nil作为图像不起作用)。

如何使用这样的调用根据FB ID预先填充接收用户?

2 个答案:

答案 0 :(得分:0)

SDK不支持在没有某种内容(图像,视频,链接等)共享的情况下在两个用户之间开始简单对话,并且必须手动输入消息,用户仍然按字符逐个输入平台上不允许填写。

您可以查看iOS上Send Button的文档或Messenger Platform的文档,查看您拥有的所有选项。

答案 1 :(得分:0)

Facebook Messenger SDK将文本分享给特定用户

- (无效)messengerclicked {

NSLog(@"messenger tapped");

NSString * urlWhats = [NSString stringWithFormat:@"fb-messenger://user-thread/ENTER NUMERIC ID OF FACEBOOK PROFILE/"];

NSURL * facebookURL = [NSURL URLWithString:[urlWhats stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
if ([[UIApplication sharedApplication] canOpenURL: facebookURL]) {
    [[UIApplication sharedApplication] openURL: facebookURL];
} else {
    // Cannot open facebook
    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"brand name"
                                                                   message:@"Fb-Messenger is not installed. \n Press Ok to Download and Install "
                                                            preferredStyle:UIAlertControllerStyleAlert];

    UIAlertAction *actionOk = [UIAlertAction actionWithTitle:@"OK"
                                                       style:UIAlertActionStyleDefault
                                                     handler:^(UIAlertAction *action)
                               {
                                   NSString *iTunesLink = @"itms://itunes.apple.com/us/app/messenger/id454638411?mt=8";
                                   [[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];

                               }];

    //You can use a block here to handle a press on this button
    [alert addAction:actionOk];
    [self presentViewController:alert animated:YES completion:nil];
}

}