[英]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對獲取正確的pageId
和appId
很有幫助。 瀏覽FB應用程序,粉絲頁面時,不要被URL中的ID所迷惑...
OAuthResponse
對象獲取應用程序允許共享信息所需的訪問令牌。 成功后,您將在response.authResponse.userID
找到userId。
類似的信息可以在這里找到。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.