Ayuda para almacenar datos de Facebook en MySQL

  • Autor Autor Jesús Rojas
  • Fecha de inicio Fecha de inicio
Jesús Rojas

Jesús Rojas

Zeta
Verificación en dos pasos activada
Hola, estoy haciendo una web en la cual eh usado la Api de facebook para poder iniciar sesion en la web.

Al usar el inicio de sesión, sin almacenar datos, la web funciona bien.

Pero cuando quiero almacenar los datos que obtengo de facebook como es : nombre, email y su id. Dichos datos no se guardan en mi base de datos.

Quisiera saber si alguien me podría ayudar con algunos tutoriales algo actualizados, pues eh busco en internet y eh encontrado tutos del 2012.

Aca dejo mi codigo, quizas hice algo mal.

PHP:
<?php

session_start();

require './config/facebook.php';
require './compose/vendor/autoload.php';

use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\GraphUser;
use Facebook\GraphObject;
use Facebook\FacebookRequestException;

FacebookSession::setDefaultApplication($config['app_id'], $config['app_secret']);
$helpder = new FacebookRedirectLoginHelper('http://localhost/start.php');

try {
    $session = $helpder->getSessionFromRedirect();

    if ($session):
        $_SESSION['facebook'] = $session->getToken();
        header('Location: index.php');
    endif;

    if (isset($_SESSION['facebook'])):
        $session = new FacebookSession($_SESSION['facebook']);

        $request = new FacebookRequest($session, 'GET', '/me');
        $response = $request->execute();
        $graphObjectClass = $response->getGraphObject(GraphUser::className());
        $name = $graphObjectClass->getName();

        $id = $graphObjectClass->getId();
        $image = 'https://graph.facebook.com/' . $id . '/picture?width=3000&&height=3000';

        $mysqli = new mysqli($host, $user, $pass, $bd);
        $query = $mysqli->query("SELECT facebook_id FROM usuario WHERE facebook_id='id'");

        if ($query->num_rows > 0) {
            //El usuario ya existe
        } else {
            //El usuario no existe

            $facebook_id = $graphObjectClass->getId();
            $name = $graphObjectClass->getName();
            $email = $graphObjectClass->getEmail(['email']);
            //Insertamos en la BD
            $insert_user = $mysqli->query("INSERT INTO usario (username,email,faccebook_id) VALUES ('$name','$email','$facebook_id')");
        }        
    endif;
} catch (Exception $exc) {
    
}


Gracias 🙂
 
Pues yo veo dos errores, la primer query, que no debería ser así:
PHP:
$query = $mysqli->query("SELECT facebook_id FROM usuario WHERE facebook_id='$id'");

Y la segunda query solo la estás definiendo la variable, creo que debería quedar así:
PHP:
$mysqli->query("INSERT INTO usario (username,email,faccebook_id) VALUES ('$name','$email','$facebook_id')");

Además de que intentas insertar a "faccebook_id", no sé si te equivocaste en el ejemplo o así lo tienes XD

- - - Actualizado - - -

y también usario :topsy_turvy:😕:s
 
Pues yo veo dos errores, la primer query, que no debería ser así:
PHP:
$query = $mysqli->query("SELECT facebook_id FROM usuario WHERE facebook_id='$id'");

Y la segunda query solo la estás definiendo la variable, creo que debería quedar así:
PHP:
$mysqli->query("INSERT INTO usario (username,email,faccebook_id) VALUES ('$name','$email','$facebook_id')");

Además de que intentas insertar a "faccebook_id", no sé si te equivocaste en el ejemplo o así lo tienes XD

- - - Actualizado - - -

y también usario :topsy_turvy:😕:s

Gracias por la ayuda, eh arreglado algunas cosas pero seguia sin dar resultado, y aun no puedo insertar los datos en mi BD.
 
Última edición:
Atrás
Arriba