我已经实现了通过其 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} 替换为应用名称。
我也有:
检查我的包标识符是否与我放入 facebook 应用程序配置的字符串完全相同;
在 facebook 应用程序配置中添加了我作为应用程序域发送的链接的域;
添加了我作为网站平台发送的链接的域;
通过以下代码将我的应用程序的应用程序委托与来自 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); }
任何帮助,将不胜感激。谢谢!