如何在Facebook上分享后,允许用户从网站下载文件?

时间:2015-02-26 08:05:48

标签: javascript php jquery facebook-graph-api facebook-javascript-sdk

我希望当用户尝试从我的网站下载任何pdf / doc / zip文件时,首先用户将在他/她的Facebook墙上分享关于我的网站的一些内容,并且在成功共享下载链接后将启用。

我在Stack Overflow上得到了一个关于这个问题的解决方案,但这不是100%正确的。因为此解决方案能够在Facebook上共享但共享后不会出现下载链接。下面的链接是Stack Overflow回答的解决方案。

Is it possible to add a link to download a file that can only be downloaded by sharing it on Facebook?

1 个答案:

答案 0 :(得分:1)

Facebook最近更改了它的分享对话框的行为。在此之前,对话框发送了一个响应,其中包含成功共享内容时的帖子ID,而不是在不需要用户进行身份验证的情况下。

但是,当用户未连接到您的应用程序且未授予您应用的publish_actions权限时,目前 Facebook共享对话框不会发送帖子ID和响应。

Regarding the post_id the docs state:

  

仅在用户使用Facebook登录您的应用并且已授予publish_actions时才可用。如果存在,则这是已发布的Open Graph故事的ID。

如果你想要这样做,你必须经历authentication flow的整个混乱,这可能是不值得的。

另外请求publish_actions权限将要求您的应用为reviewed。由于Facebook不允许任何形式的门控,publish_actions权限将不会获得批准。目前无法实现此功能。

See Facebooks Developer Platform Policy (4.5)

(感谢luschn提示)


所有这些都归结为一些原则:

  • 提供优质内容,不要依赖于用户互动
  • 不要强迫用户与您的应用程序进行社交互动。如果他们希望他们按照自己的行为这样做
  • 至少Javascript SDK很难正确实施。尽可能避免使用它。使用社交功能作为额外奖励而非必需品。
  • Facebook时不时地改变它的API。 API非常不可靠,如果它严重依赖社交功能,则会强迫您每隔几个月对代码进行一次更改。