Javascript 查找喜欢某个页面的facebook用户标识符
我的网页上有类似facebook的按钮。当有人点击喜欢它,那么有没有办法知道谁喜欢它,任何facebook用户标识符 此外,如果有人已经喜欢它并返回到我的页面,那么是否有人知道该访问者已经喜欢它,以及该访问者的facebook唯一标识符是什么 假设用户已经登录到facebook。 我在上读到关于FB.Event.subscribe的文章,但这只是告诉我有人喜欢我的页面,但没有办法知道“谁”Javascript 查找喜欢某个页面的facebook用户标识符,javascript,facebook,facebook-graph-api,facebook-like,Javascript,Facebook,Facebook Graph Api,Facebook Like,我的网页上有类似facebook的按钮。当有人点击喜欢它,那么有没有办法知道谁喜欢它,任何facebook用户标识符 此外,如果有人已经喜欢它并返回到我的页面,那么是否有人知道该访问者已经喜欢它,以及该访问者的facebook唯一标识符是什么 假设用户已经登录到facebook。 我在上读到关于FB.Event.subscribe的文章,但这只是告诉我有人喜欢我的页面,但没有办法知道“谁” 只要我能得到唯一的标识符,我就可以灵活地将按钮更改为链接或其他任何东西。这是我几年前构建的东西,考虑到Fa
只要我能得到唯一的标识符,我就可以灵活地将按钮更改为链接或其他任何东西。这是我几年前构建的东西,考虑到Facebook频繁更改其API,所以不确定它是否仍在工作。也许您可以对此稍作调整,或者它为您提供了一些关于如何检索用户ID的新想法:
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>
if(窗口开启器){
window.opener.fbReturnHandler();
window.close();
}
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这些天:生成
如评论中所述,要获得用户ID,您必须通过一些facebook策略(范围),以允许用户与您的应用程序共享此信息。因此,需要在facebook上注册
安装应用程序后,我发现在获取正确的pageId
和appId
方面,使用该工具非常有帮助。浏览FB应用程序、粉丝页面时,不要被URL中的ID弄糊涂
对象获取应用程序允许共享信息所需的访问令牌。一旦成功,您将在response.authResponse.userId
中找到用户标识
类似的信息也可以找到。如果你只在页面中使用类似facebook的按钮,你无法获取用户数据。所以,你不能知道谁喜欢你的链接。不,你不能。虽然这似乎更无关紧要,但用户在互联网上仍然有一些隐私。如果你想获得用户ID,你必须创建一个应用程序,并向每个进入你网站的用户请求权限,然后由用户授予你该信息。谢谢@tim提供的片段。但我没有任何应用程序。相反,它只是在一个随机网页上。这很好,但你的简单网页仍然可以在facebook上有一个应用程序来检测用户是否喜欢某个网页。facebook上的应用程序只不过是facebook和您的简单网页之间的合同。添加应用程序需要用户授予对我的应用程序的权限。这是一个额外的责任层,我不想把它呈现给我的用户