Facebook Cordova 插件 - 共享照片(没有链接)导致空的共享对话框

Posted

技术标签:

【中文标题】Facebook Cordova 插件 - 共享照片(没有链接)导致空的共享对话框【英文标题】:Facebook Cordova plugin - sharing a photo (with no link) results in empty Share Dialog 【发布时间】:2017-06-03 11:09:07 【问题描述】:

我在 android 上的 Meteor 移动应用中使用了 cordova Facebook 插件 (https://github.com/jeduan/cordova-plugin-facebook4)。

我可以成功地使用共享对话框来共享带有链接的照片(如此处的插件示例:https://github.com/jeduan/cordova-plugin-facebook4#show-a-dialog)。即...


  method: "share",
  href: "http://example.com",
  caption: "Such caption, very feed.",
  description: "Much description",
  picture: 'http://example.com/image.png'

但是,如果我尝试分享仅照片(即没有网站链接)...

facebookConnectPlugin.showDialog(
  method: "share",
  picture:'https://www.google.co.jp/logos/doodles/2014/doodle-4-google-2014-japan-winner-5109465267306496.2-hp.png',
  name:'Test Post',
  message:'First photo post',
  caption: 'Testing using phonegap plugin',
  description: 'Posting photo using phonegap facebook plugin'
, function (response) 
  console.log(response)
, function (response) 
  console.log(response)
);

....共享对话框打开,但为空。

完全是插件的 github (https://github.com/jeduan/cordova-plugin-facebook4#publish-a-photo) 上给出的最后一个示例,所以我认为这是一个有效的用例。

有什么想法吗?

【问题讨论】:

您的设备中是否有原生 facebook 应用程序? 是的。它有应用程序。对话框打开......它只是空的。 【参考方案1】:

参考这个:

    https://github.com/jeduan/cordova-plugin-facebook4/issues/36 Facebook share content only shares URL in ios 9 https://github.com/jeduan/cordova-plugin-facebook4/issues/221

如果它仍然没有解决你的问题,那么这个插件有官方未解决的问题,你需要更改插件。

【讨论】:

【参考方案2】:

如果没有提供链接,您需要将方法调整为“feed”而不是“share”。

变化:

 method: "share",

收件人:

 method: "feed",

【讨论】:

无论方法是 share 还是 feed,结果都相同 - 对话框打开,但完全为空。【参考方案3】:

我遇到了同样的问题,终于解决了!如何?我刚刚这样做了:

method: "share",
href: 'url_of_image_or_photo_to_share'

即使这样做了,共享对话框仍然显示为链接或小图标!所以我继续点击帖子,但看到它就像我在 Facebook 上所期望的那样。

试一试!

【讨论】:

【参考方案4】:

1. https 图像 url 的不受信任的 ssl 证书

如果证书不受 facebook 信任,则不会预览图像。见https://rameerez.com/facebook-sharing-not-scraping-url-correctly-with-https-links/

2。图片尚未被 facebook 缓存

https://developers.facebook.com/docs/sharing/best-practices/

预缓存图片

第一次分享内容时,Facebook 爬虫会 从共享的 URL 中抓取并缓存元数据。爬虫必须 在渲染之前至少查看一次图像。这意味着 第一个分享内容的人不会看到渲染的 图片:

要验证这是否是问题所在,请使用 facebook 共享调试器:

https://developers.facebook.com/tools/debug/

【讨论】:

以上是关于Facebook Cordova 插件 - 共享照片(没有链接)导致空的共享对话框的主要内容,如果未能解决你的问题,请参考以下文章

Facebook 明确共享的操作不适用于 Cordova 应用程序

Phonegap/cordova 社交分享插件,重复推文问题

桌面/移动标准网页中的phonegap / cordova社交共享插件

Cordova/Phonegap:无法让 Facebook Phonegap 插件工作

Cordova Facebook 登录插件

Cordova:适用于 Android 的 Facebook 插件构建错误