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

时间:2016-10-18 19:07:07

标签: xamarin.ios facebook-ios-sdk messagedialog

我已经实现了例程,通过MessageDialog API向facebook messenger发送链接+内容。我设法让链接内容出现在消息对话框中,但是发送按钮被禁用。我认为这比配置问题更重要。

我已经在xamarin本地ios中使用最新的xamarin facebook sdk(v 4.15.1)实现了这一点,我正在使用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>

其中{my-fb-app-id}已替换为我的Facebook应用ID,{my-fb-app-name}替换为应用名称。

我也有:

  1. 检查我的包标识符是否与我在facebook应用配置中使用的字符串完全相同;

  2. 在facebook app配置中添加了我作为App Domain发送的链接的域名;

  3. 添加了我作为网站平台发送的链接的域名;

  4. 通过以下代码将我的应用程序的app委托与facebook中的app委托集成:

    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);
    }
    
  5. 任何帮助将不胜感激。 谢谢!

1 个答案:

答案 0 :(得分:3)

所以,facebook实际上只是阻止了我的网址。 其他网址一切正常。

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

这种行为确实有意义。让我感到困惑的是,如果我通过Android Intent共享相同的内容,facebook就可以了。

无论如何,现在一切正常。

希望这可以帮助任何有同样问题的人!

干杯!