簡體   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