繁体   English   中英

使用javascript SDK和应用访问令牌获取Facebook用户名

[英]Get Facebook user name with javascript SDK and app access token

我已经编写了一些php,它检索存储在我的数据库中的facebook用户ID,然后继续请求他们的用户名。 一切正常,但是此过程为我的页面加载增加了1.8秒的时间,如果可能的话,我希望避免这种情况。

因此,我重新构建了代码,并添加了一些JavaScript,这些JavaScript会查找用户ID,然后请求用户名。 此方法运行速度快得多,我的页面加载时间缩短了1.8秒。 但是,为了使其正常工作,我将我的应用程序访问令牌添加到了javascript中,这当然是一个安全黑洞

javascript fb.api调用现在看起来像这样

        FB.api('/'+userid, {access_token : 'appAccessToken'}, function(response) {
            userNameSpan.text(response.name);
        });

我还有其他方法可以完成这项工作,而不必退回到纯慢的服务器端解决方案吗?

我最近对我的问题一无所获。 无论如何,我能想到的唯一其他解决方案是ajax调用php文件,该文件将请求用户名本身,或者将用户名与用户ID一起存储在数据库中。

由于许多原因,ajax解决方案存在问题,主要是因为平台是joomla,而php是自定义模块,这意味着我将不得不在joomla框架之外调用文件(出现安全问题)或构建自己的文件定制模块的帮助文件,以便它与joomla的com_ajax组件一起使用,这当然是一个时间浪费。

数据库解决方案的缺点是用户名不会是动态的,这意味着如果用户在将他/她添加到数据库后更改了他/她的用户名,则该更改将对我不可用。 我想我还可以存储将用户插入数据库的时间并检查已过去了多少时间,并且仅在经过预定义的时间后才对他/她的用户名执行Facebook请求,然后如果用户名已改变。 不太动态,但足够接近

如果有任何其他想法,请不要害羞

尽管我打算使用数据库解决方案,但我发现了另一个可以显着减少页面加载量的解决方案。

您可以进行批量调用,而不是为每个用户进行api调用,而是在一个调用中请求有关许多用户的信息。 在这里进行解释https://developers.facebook.com/docs/graph-api/making-multiple-requests

这样可以将我的通话次数从6减少到1。但是,由于阅读了一些有关Facebook名称的信息,我意识到它们不再经常更改,因此数据库解决方案对于我的情况更好

暂无
暂无

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

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