我正在开发PHP中的小型CMS,我们正在进行社会融合。

内容由单个管理员更改,他作为发布新闻,事件等的权利...

当管理员发布已发布在Facebook墙上的内容时,我会添加此功能。我对Facebook PHP SDK并不熟悉,对此我有些困惑。

如果(成为示例)10个不同的网站正在使用我的CMS,我是否必须创建10个不同的Facebook应用程序? (假设这10个网站都在不同的域和服务器中)

第二,是否有一种方法可以使用PHP进行身份验证(类似于直接发送用户名和密码),以便无需在Facebook上登录用户?

谢谢

有帮助吗?

解决方案

请阅读 http://developers.facebook.com/docs/.

它非常简单,直截了当,得到了很好的解释。

您的问题是如此模糊和广泛,以至于这里无法得到很好的回答。

如果您遇到任何特定的实施问题,这是正确的位置。

但是,要回答至少您问题的一部分:

使用Facebook应用程序时,最强大的工具是Graph API。

它的原理非常简单。您可以代表任何用户或应用程序执行任何操作。您必须首先生成一个令牌,以标识用户和适当的权限。这些令牌可以“永久”,因此您可以执行背景任务。通常,它们仅在很短的时间内就活跃,因此您可以在与用户互动时执行操作。生成代币的过程涉及用户,因此他/她必须确认您要的特权。

对于自动发布内容的网站,只要您在隐私设置中删除该应用程序,您可能会产生一个永久的令牌。

基本上,您可以在任何网站上使用任何应用程序。没有限制。但是,有两种产生令牌的方法。一个涉及附加请求,并且完成了客户端,该请求与您的应用程序设置指定的一个域OYU绑定。

附录:

@Artoale

您对每个应用程序的Assighend都对一个域进行了正确的选择。但是,一旦获得有效的令牌,在图API中使用它的位置或使用谁就无关紧要。

让我有点兴趣:

这是没有道理的,因为您要执行请求。没有“请求来自哪里”之类的东西。当然,有“推荐人”标题信息,但是可以自由指定,并且在任何情况下均不使用。

您在应用程序设置中输入的域仅限制了Facebook将用户重定向到的位置。

为什么?

这样可以确保某些坏人无法在任何域上设置网站,并让用户授权应用程序并使用您的应用程序获得访问令牌。

因此,此设置可确保用户和访问令牌将其重定向回到您的网站,而不是另一个不好的站点。

但是有另一种选择。如果您将控制流程用于桌面应用程序,则在用户重定向后,您将无法立即获得访问令牌。您将获得一个临时会议,您可以脱颖而出,以获取访问令牌。此交换是在REST API上完成的服务器端,需要您的应用程序秘密。因此,在这一点上,可以确保您获得令牌。

该方法可以在任何域上都可以在任何域上进行,也可以在没有域上进行桌面应用程序。

这是faceboo文档的报价:

要转换会议,请将邮政请求发送到 https://graph.facebook.com/oauth/exchange_sessions带有您要转换的会话列表:

curl client_id = your_app_id -f Client_secret = your_app_secret -f sessions = 2.dbavcpzl6yc_xgei0ip9ga__。3600.1271649600-12345,2.ABDC... https://graph.facebook.com/oauth/exchange_sessions请求的响应是OAuth访问令牌的JSON阵列,其顺序与给出的会话相同:

{“ Access_token”:“ ...”,“ Expires”:1271649600,},...

但是,您不需要此方法,因为它更复杂。对于您的用例,我建议使用中心授权点。

因此,您将一个域指定为重定向URL。该域比您的网站之间共享。在这里,您可以获取完全有效的访问令牌,并无缝将用户无缝地重定向到您的特定项目网站,并传递访问令牌。

这样,您可以使用传统的简单身份验证流,这可能也是将来更具证据的证据。

事实仍然是。生成访问令牌后,您可以从任何域中执行任何操作,因此没有区别,因为从字面上看请求的位置没有“域”(请参见上文)。

除此之外,如果您想要一些不错的JavaScript功能工作 - 例如评论框或喜欢按钮,则需要设置 打开的图形标签 正确。

如果您有一些实现问题或正如您所说的“域错误”,请更清楚地描述它们,包括您所做的步骤,并在可能的情况下输入错误消息。

其他提示

您可能希望将问题分解为较小的可理解单元。很难理解您的驾驶。

我对您的问题的理解可能很小,但是这里...

1_不,您不会创建10个不同的Facebook应用程序。创建一个Facebook应用程序,并使其成为服务入口点。因此,您所有的CMS网站都可以与这个网站对话与Facebook互动。 (休息服务层)。

2_ Facebook API不支持用户名和密码身份验证。他们只支持oauth2.0。尽管Oauth并不小,但是由于它们为此提供了库,因此实施身份验证非常微不足道。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top