繁体   English   中英

Facebook不赞成使用离线访问,还是可以吗?

[英]Facebook deprecated offline access, any way around?

我在php中有一个音乐网站。 我可以让用户通过facebook进行身份验证,并通过hybridauth库登录到我的网站。

现在我想要的是,每当用户收听一首歌曲时,我都会通过歌曲链接更新其状态。 Facebook取消了对脱机访问的支持后,现在是否可以实现此目的?或者这是不需要脱机访问权限的东西吗?

我是Facebook API的新手。

好吧,我还不太了解您的情况,但是如果用户在您要发布在墙上的时候正在使用您的应用程序,那么您将不会有任何问题,并且不需要“ offline_access”或任何等效项..

您可以简单地将javascript SDK加载到页面上,这将确保用户已通过身份验证,并且您具有有效的访问令牌,如auth文档中处理无效和过期的访问令牌所述

通过Javascript SDK实现身份验证的桌面Web和移动Web应用程序

调用FB.getLoginStatus()或确保状态:在您调用FB.init()时设置为true意味着用户下次登陆您的应用程序并登录Facebook时,由于这些调用而传递了authResponse对象将包含一个新的有效访问令牌。

在这种情况下,这只是用户使用您的应用程序的行为,它隐式生成一个新的访问令牌。


编辑

如果使用服务器端身份验证流,或者使用提供的用于扩展有效访问令牌的新端点facebook(使用客户端流获取),则可以获得较长的访问令牌(约60天)。后删除offline_access权限

如果这对您有帮助,那么可以,但我建议您仅确保您的应用程序可以处理令牌到期,因为您无法采取任何措施来完全避免这种情况。

怎么样? 好吧,您有几个选择,您需要找到一个适合您特定情况的选择,但这是一个选择:首先,正如我所看到的,自令牌以来,您必须在客户端进行操作当用户正在聆听歌曲时,ca会过期,并且为了从服务器端获取新令牌,您必须刷新页面并将用户发送到auth对话框,这会干扰他的体验。

这是一些使用js sdk的js代码,它不是完整的代码,我不希望它能正常工作,但是它应该使您对可以做什么有所了解:

FB.Event.subscribe("auth.statusChange", function(response) {
    if (response.status !== "connected") {
        FB.login(function(response2) {
            if (response2.authResponse) {
                // you now have a valid access token, you can update your server side with an ajax request for example
            }
            else {
                // user canceled login
            }
        });
    }
});

另外,请注意, FB.login会尝试打开一个弹出窗口,因此不应仅在用户交互后才这样调用它,因此,与其仅调用它,还应替换为向用户显示一条消息,例如“请单击“确定”,以便能够发布到Facebook ...”,然后单击打开FB.login

当然,您可以使用其他方法或可以订阅的其他事件,只需阅读文档并尝试使用所拥有的选项即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM