【问题标题】:Facebook iOS Message Dialog Send Button DisabledFacebook iOS 消息对话框发送按钮已禁用
【发布时间】:2016-10-20 10:52:41
【问题描述】:

我已经实现了通过其 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 应用配置中添加了我作为应用域发送的链接的域;

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

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

    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);
    }
    

任何帮助将不胜感激。 谢谢!

【问题讨论】:

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


    【解决方案1】:

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

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

    这种行为确实有点道理。欺骗我的是,如果我通过 Android Intent 共享相同的内容,Facebook 就可以了。

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

    希望这对遇到同样问题的人有所帮助!

    干杯!

    【讨论】:

    • 那么有没有办法在iOS中发送没有URL的消息(只是一条短信),顺便说一句,这在android中是可能的
    • @Rakii,恐怕不是使用消息对话框 API。您必须使用发送 API 来执行此操作 (developers.facebook.com/docs/messenger-platform/…)
    猜你喜欢
    • 2014-02-05
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    相关资源
    最近更新 更多