gpt4 book ai didi

php - 通过Facebook登录后检索名字和姓氏

转载 作者:可可西里 更新时间:2023-11-01 01:13:40 25 4
gpt4 key购买 nike

我设法通过 facebook api 登录(我认为)。这是我的代码:

<script>
window.fbAsyncInit = function() {
FB.init({
appId : '134824563795810',
autoLogAppEvents : true,
xfbml : true,
version : 'v2.10'
});
FB.AppEvents.logPageView();
};

(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

function myFacebookLogin() {
FB.login(function(){}, {scope: 'publish_actions'});
}

</script>

简单的按钮只是为了测试这是否有效:

<button onclick="myFacebookLogin()">Kontynuuj przez facebook</button>

点击它后我收到这个弹出窗口:

enter image description here

我单击“确定”,我想我已经登录了。再次单击会生成小的弹出窗口,这些窗口很快就会消失。我说我想我已经登录了,因为我没有在我的网站上使用任何授权。我不需要它。

我的问题是:如果我已登录,如何获取用户的名字和姓氏并将这些值放入我的方括号输入中?

enter image description here

我想让脚本只将值放入输入中。喜欢:

  • Imię -> 名字
  • Nazwisko -> 姓氏

有什么建议吗?

编辑:

我终于想到了这段代码:

<script>
function getUserData() {
FB.api('/me?fields=first_name,last_name,email,location', function(response) {
var imie = document.getElementById('basketInputName');
if(!imie || !imie.value)
imie.value = response.first_name;
var nazwisko = document.getElementById('basketInputLastName');
if(!nazwisko || !nazwisko.value)
nazwisko.value = response.last_name;
var email = document.getElementById('basketInputMail');
if(!email || !email.value)
email.value = response.email;
var location = document.getElementById('cityToHidden');
if(!location || !location.value)
location.value = response.location.name;
});
}
window.fbAsyncInit = function() {


FB.init({
appId : '134824563795810',
autoLogAppEvents : true,
xfbml : true,
version : 'v2.10'
});
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
//user is authorized
document.getElementById('loginBtn').style.display = 'none';
getUserData();
} else {
//user is not authorized
}
});
};

(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

function myFacebookLogin() {
FB.login(function(){
getUserData();
}, {scope: 'user_location'});
}

但它并没有像我希望的那样工作。当我单击 loggin 按钮时没有任何反应,但是当我刷新页面并检查存储桶时,我看到了 firstNamelastNameemail 在输入中。而且我不知道如何在不刷新页面的情况下通过单击 login 按钮来动态填充输入。有人可以帮忙吗?

最佳答案

使用 public_profile 范围

function myFacebookLogin() {
FB.login(function(){}, {scope: 'publish_actions,public_profile'});

在公开个人资料中,您会得到 first_name 和 last_name

请参阅此处 details

关于php - 通过Facebook登录后检索名字和姓氏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45958341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com