Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从Facebook登录Java SDK获取response.id作为字符串_Javascript_Php_Facebook_Login_Sdk - Fatal编程技术网

Javascript 如何从Facebook登录Java SDK获取response.id作为字符串

Javascript 如何从Facebook登录Java SDK获取response.id作为字符串,javascript,php,facebook,login,sdk,Javascript,Php,Facebook,Login,Sdk,我陷入了以下过程: 下面是众所周知的“使用JavaScript SDK登录Web的Facebook”示例: 我想将Facebook用户ID作为一个简单的字符串传递给PHP变量。虽然打印$fbID时会显示用户ID,但它不是字符串 如何以简单字符串(或数字)的形式获取用户标识 这是我的密码: <?php $fbID = "<script> function testAPI() { console.log('Welcome! Fetching your inf

我陷入了以下过程:

下面是众所周知的“使用JavaScript SDK登录Web的Facebook”示例:

我想将Facebook用户ID作为一个简单的字符串传递给PHP变量。虽然打印$fbID时会显示用户ID,但它不是字符串

如何以简单字符串(或数字)的形式获取用户标识

这是我的密码:

  <?php
  $fbID = "<script>
  function testAPI() {
    console.log('Welcome!  Fetching your information.... ');
    FB.api('/me', function(response) {
      console.log('Successful login for: ' + response.name);
      document.getElementById('status').innerHTML = response.id;
    });
  }
</script>";
?>
</script>
<div id="status">
</div>

<?php
echo $fbID;

$sql = "select id from customer where fbid = '$fbID' and status = '1'";
  $table = mysqli_query($conn,$sql);
list($realid) = mysqli_fetch_array($table,MYSQLI_BOTH);
echo $realid;
?>

使用ajax将ID持久化到数据库中。将以下代码添加到
FB.api('/me',函数(响应){}
函数中:

$.ajax({
    url: 'persistID.php',
    type: "POST",
    dataType:'json', 
    data: ({id: response.id}),
    success: function(data){
        console.log(data);
    }
});  
并创建一个单独的persistID.php文件,在其中保存FacebookID:

<?php

    $ID = $_POST['id'];

    $servername = "localhost";
    $username = "username";
    $password = "password";
    $dbname = "myDB";

    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);

    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 

    $sql = "INSERT INTO customer (fbid) VALUES ($ID)";

    // Persist userid
    if ($conn->query($sql) === TRUE) {
        echo "New record created successfully";
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }

    $conn->close();
?>


谢谢您提供的信息!可以在同一个php文件上使用ajax查询的结果吗?E.q.我想在login.php上使用整个代码。在我获得$.ajax数据后,我只想在该页面上作为php变量$ID=$\u POST['ID']进行回显在PHP中,不要输出HTML和JavaScript,在PHP中。我个人认为这是不好的做法。在语法高亮的文本编辑器中看起来很糟糕,你必须担心逃脱的字符串…用纯HTML和JavaScript做你的东西,使用单独的PHP文件。用Ajax访问它们。调用。噢,我明白了!我不想最后在我的页面上回显这个,我知道,这是无用的:)我只想测试它,因为在我以前的代码中,我已经能够回显response.id,尽管我不能使用变量,因为它不是字符串。我已经在MySQL DB上与现有客户的同一行中有一个fbid,我的目标是将response.id传递给一个PHP变量,然后使用它从MySQL请求具有此fbid的受影响用户的id。