Xamarin.ios Facebook iOS消息对话框发送按钮已禁用

Xamarin.ios Facebook iOS消息对话框发送按钮已禁用,xamarin.ios,facebook-ios-sdk,messagedialog,Xamarin.ios,Facebook Ios Sdk,Messagedialog,我已经实现了通过MessageDialog API向facebook messenger发送链接+内容的例行程序。我已设法使链接内容显示在消息对话框上,但“发送”按钮已禁用。我认为这更像是一个配置问题 我已经使用最新的xamarin facebook sdk(V4.15.1)在xamarin原生ios中实现了这一点,我正在使用sdk 10.0进行编译 下面是一个非常基本的实现: public bool SendMessageViaMessenger(string Text, string Lin

我已经实现了通过MessageDialog API向facebook messenger发送链接+内容的例行程序。我已设法使链接内容显示在消息对话框上,但“发送”按钮已禁用。我认为这更像是一个配置问题

我已经使用最新的xamarin facebook sdk(V4.15.1)在xamarin原生ios中实现了这一点,我正在使用sdk 10.0进行编译

下面是一个非常基本的实现:

public bool SendMessageViaMessenger(string Text, string Link) {
    var content = new ShareLinkContent();
    content.SetContentUrl(new NSUrl(Link));
    content.ContentTitle = "Here is an invite";
    content.ContentDescription = "Test description";

    MessageDialog.Show(content, null);
    return true;
}
以下是我的Info.plist facebook配置部分:

<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>fb{my-fb-app-id}</string>
    </array>
  </dict>
</array>
<key>FacebookAppID</key>
<string>{my-fb-app-id}</string>
<key>FacebookDisplayName</key>
<string>{my-fb-app-name}</string>
<key>LSApplicationQueriesSchemes</key>
<array>
  <string>whatsapp</string>
  <string>fbapi</string>
  <string>fb-messenger-api</string>
  <string>fbauth2</string>
  <string>fbshareextension</string>
</array>
任何帮助都将不胜感激。
谢谢

所以,facebook实际上只是屏蔽了我的URL。 与其他URL一起,一切都很好

在对MessageDialog API进行了一些深入的实验之后,我们发现facebook希望共享的url能够返回一个正确的HTML内容结果,并显示HTTP 200状态。我共享的url实际上返回了302状态,将用户重定向到错误页面。因此,facebook不接受这种行为作为可共享内容

这种行为有点道理。欺骗我的是,如果我通过安卓系统共享相同的内容,facebook是可以的

不管怎样,现在一切都很好

希望这能帮助任何有同样问题的人


干杯

那么,有没有一种方法可以在iOS中发送一条没有URL的消息(只是一条文本消息),这在android中是可能的way@Rakii,恐怕没有消息对话框API。您必须使用sendapi来完成此操作()
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
    global::Xamarin.Forms.Forms.Init();
    LoadApplication(new App());

    Facebook.CoreKit.ApplicationDelegate.SharedInstance.FinishedLaunching(app, options);
    return base.FinishedLaunching(app, options);
}