簡體   English   中英

查找喜歡頁面的Facebook用戶標識符

[英]Finding facebook user identifier, who liked a page

在此處輸入圖片說明

在此處輸入圖片說明

我的網頁上有Facebook之類的按鈕。 當有人單擊喜歡它時,有沒有辦法知道誰喜歡它,任何Facebook用戶標識符?

另外,如果有人已經喜歡它並返回到我的頁面,那么無論如何,該訪問者是否知道訪問者已經喜歡它,並且該訪問者的Facebook唯一標識符是什么?

Pl。 假設用戶已經登錄到Facebook。 我在https://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe上了解了有關FB.Event.subscribe的信息,但這只是告訴我有人喜歡我的頁面,但是無法知道“ WHO ”

只要我可以獲得唯一的標識符,我就可以靈活地將按鈕更改為鏈接或其他任何內容。

我幾年前建造的東西,因此考慮到Facebook經常更改其API,因此不確定它是否仍在工作。 也許您可以稍作調整,或者它為您提供有關如何檢索userId的一些新思路:

var pageID = "@Configuration.FbPageID",
    appID = "@FacebookApplication.Current.AppId",
    returnURL = "@Configuration.FbReturnURL";
    OAuthResponse = {},
    fbReturnHandler = function () {
        if (!$.isEmptyObject(response)) {
            OAuthResponse = response.authResponse;
            isFan();
        }
    },
    isFan = function () {
        if (!$.isEmptyObject(OAuthResponse.accessToken)) {
            FB.api("me/likes/" + pageID + "?access_token=" + OAuthResponse.accessToken, function (r) {
                if (r.data.length) {
                    window.location = "/@ViewBag.Language/Home/step2?uid=" + OAuthResponse.userID;
                }
            });
        }
    };

window.fbAsyncInit = function () {
    FB.init({ appId: appID, status: true, cookie: true, xfbml: true, oauth: true });

    FB.Event.subscribe('edge.create', function (response) {
        if (!$.isEmptyObject(response)) {
            OAuthResponse = response.authResponse;
            window.location = "/@ViewBag.Language/Home/step2?uid=" + OAuthResponse.userID;
        }
    });

    if ($.isEmptyObject(OAuthResponse)) {
        FB.ui({
            client_id: appID,
            method: 'oauth',
            scope: 'user_likes',
            redirect_uri: returnURL,
            response_type: 'token'
        });
    } else {
        isFan();
    }
};

returnURL是一個虛擬頁面,用於處理OAuth請求並將響應值返回給您的應用程序。 由於它不會自動關閉,因此可以通過添加一個小腳本來解決它:

<script type="text/javascript">
    if (window.opener) {
        window.opener.fbReturnHandler();
        window.close();
    }
</script>

like按鈕在XFBML中:

<span class="fb-like"><fb:like href="http://www.facebook.com/yourfanpage" send="false" width="49" show_faces="false" font="arial"></fb:like></span>

這些天顯然可以是HTML5: 在此處生成。

如評論中所述,要獲取userId,您必須通過一些facebook策略(范圍),以允許用戶與您的應用程序共享此信息。 因此,需要在Facebook上構建自己的應用程序

設置您的應用程序后,我發現Graph API Explorer對獲取正確的pageIdappId很有幫助。 瀏覽FB應用程序,粉絲頁面時,不要被URL中的ID所迷惑...

OAuthResponse對象獲取應用程序允許共享信息所需的訪問令牌。 成功后,您將在response.authResponse.userID找到userId。

類似的信息可以在這里找到。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM