我的网页上有facebook喜欢的按钮。当有人点击喜欢它时,有没有办法知道谁喜欢它,任何Facebook用户标识符?
此外,如果有人已经喜欢并回到我的页面,那么无论如何都知道访问者已经喜欢它以及该访问者的Facebook唯一标识符是什么?
PL。假设,用户已登录Facebook。 我在https://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe读到了FB.Event.subscribe,但这只是告诉我有人喜欢我的页面,但是没有办法知道" WHO"
我可以灵活地将按钮更改为链接或其他任何内容,只要我能获得唯一标识符。
答案 0 :(得分:0)
我几年前建立的东西,所以不确定它是否还在工作,考虑到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>
“喜欢”按钮位于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:生成here。
如评论中所述,要获得userId,您必须通过一些Facebook政策(范围),以允许用户与您的应用程序共享此信息。因此,在Facebook上需要build your own application。
在您的应用程序设置完成后,我发现Graph API Explorer对于获取正确的pageId
和appId
非常有帮助。浏览FB应用程序,粉丝时,不要对URL中的ID感到困惑......
OAuthResponse
对象提取访问令牌,应用程序允许共享信息。成功后,您将在response.authResponse.userID
中找到userId。
可以找到类似的信息here。