我正在为已经在Facebook上拥有他的产品照片的客户开发一个网站,他希望在他的网站上复制相同的相册。我已经在使用Facebook Connect了,所以我放弃了 photos.getAlbums photos.get 的组合来动态制作画廊。

到目前为止一直很好,但后来我意识到,如果没有用户通过FBC登录,则不会创建任何会话,并且API也会变得无法使用,即使对于公开可用的内容也是如此。我显然希望向所有人展示专辑,而不仅仅是连接他们帐户的人。

这就是Facebook API中所有功能的运作方式吗?这种情况的最佳(更容易实施)解决方法是什么?

有帮助吗?

解决方案

截至2010年9月,您现在可以作为应用程序进行身份验证,而无需关联用户。有关详细信息,请参见 http://developers.facebook.com/docs/authentication/ 。或者,您可以运行此示例代码以获取访问令牌:

curl -F grant_type=client_credentials \
 -F client_id=your_app_id \
 -F client_secret=your_app_secret \
 https://graph.facebook.com/oauth/access_token

其他提示

为了记录,我设法通过开发一个小后端来解决这种情况,该后端需要客户端登录到Facebook并提供 offline_access 扩展权限到FB应用程序,所以我可以保存他的会话密钥并使用它来验证每次我需要使用时的Facebook API客户端FQL获取非公开内容。

显然可以在中间增加一些缓存,以避免对Facebook提出不必要的请求,但它已经好几个月了,但没有达到我所知道的任何限制。

这对我没有意义 - 我有一个(相对简单的)应用程序,即使用户之前从未登录过Facebook,也会在Facebook中呈现(在这种情况下,它会显示演示数据)。

使用facebook PHP库时,我只是这样做:

$ facebook =新Facebook($ api_key,$ secret);

不需要会话ID - 但显然,依赖于用户信息的api函数不起作用。

您还可以查看“无限会话”对于您的应用程序 - 您可以为自己创建一个无限会话密钥,并使用该会话访问API。

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