Noticias

Importante: ¡Si quieres publicar tu juego no olvides leer este tema!

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: [RESUELTO] Mostrar nombre e imagen de facebook en room  (Leído 328 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado tristy3

  • Habitual
  • *
  • Puntos: 47
  • Mensajes: 22
  • Sexo: Masculino
    • Ver Perfil
en: Octubre 15, 2019, 03:29:14 am
Buenas a todos, según entiendo creo que el login fue exitoso, ahora el tema es con los datos del usuario, como puedo usarlos y mostrarlos, tanto el nombre como la foto de perfil. Algún consejo de como usar la función fb_graph_request?

« última modificación: Octubre 17, 2019, 01:09:36 pm por tristy3 »

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado tristy3

  • Habitual
  • *
  • Puntos: 47
  • Mensajes: 22
  • Sexo: Masculino
    • Ver Perfil
Respuesta #1 en: Octubre 17, 2019, 01:07:22 pm
Bueno entre tantas vueltas, logré resolver la cuestión y como buen hombre paso a compartir el código completo con sus eventos y objetos que utilicé ya que la documentación viene con algunos errores.

Primero que nada este foro me sirvió de mucha utilidad, pero como decía anteriormente tiene una serie de errores.

https://help.yoyogames.com/hc/en-us/articles/360004488072

Usé 3 objetos:

ob_control
Event Create
fb_init (); 
fb_logged_in = false;
fb_read_permissions = false;
fb_publish_permissions = false;
fb_userid = "";
fb_username = "";
fb_picture = -1;
fb_permissions = ds_list_create ();
ds_list_add (fb_permissions, "public_profile", "user_friends");


Event Async -Social
switch (async_load[? "type"])
    {
    case "facebook_login_result":
        show_debug_message("facebook_login_result async event triggered");
        if async_load[? "status"] == "success"
        {
        if !fb_logged_in
            {
            fb_logged_in = true;
                       
           show_debug_message("User successfully logged in!");
            for (var i = 0; i < ds_list_size(fb_permissions); ++i;)
                {
                var _key = fb_permissions[| i];
                if ds_map_exists(async_load, _key)
                    {
                    if async_load[? _key] == "granted"
                        {
                        show_debug_message("Permission " + _key + ": granted");
                        }
                    else show_debug_message("Permission "+_key + ": "+async_load[? _key]);
                    }
                else show_debug_message("Permission " + _key + ": Does Not Exist");
                }
            }
        }
        else show_debug_message("Login failed: " + string(async_load[? "status"]));
    break;
   
       
       


case "fb_graph_request":
    show_debug_message("fb_graph_request async event triggered");
    if async_load[? "status"] == "success"
        {
       
        show_debug_message("Graph Request Successful!");
        var _text = async_load[? "response_text"];
        var _response = json_decode(_text);
        show_debug_message("Response = " + string(_response));
        fb_username = _response[? "name"];
       
       
       
        fb_userid = _response[? "id"];
        var _pic_map = _response[? "picture"]
        var _data_map = _pic_map[? "data"];
        fb_picture = sprite_add(_data_map[? "url"], 0, false, false, 0, 0);
        }
     else
        {
        if async_load[? "status"] == "error"
            {
            show_debug_message("Graph Request Error!");
            show_debug_message("Exception = " + string(async_load[? "excepton"]));
            }
        else
            {
            show_debug_message("Graph request Cancelled!");
            }
       }
 break;
}

Event Async - Load Image
if async_load[? "id"] == fb_picture
    {
    if async_load[? "status"] >= 0
        {
        ob_fb_graph_request.sprite_index = fb_picture;
        }
    }


ob_login
Event Mouse Left
if fb_status() != "AUTHORISED"
    {
    var perms = ds_list_create();
    ds_list_add( perms, "public_profile", "user_friends");
    fb_login(perms, fb_login);
    ds_list_destroy(perms);
}



ob_fb_graph_request //este lo usé como prueba, puedes usas el mismo ob_control para efectuar esto
Event Mouse Left
var _l = ds_list_create();
ds_list_add(_l, "fields", "id,name,picture");
fb_graph_request("me", "GET", _l);
ds_list_destroy(_l);

Event Draw
draw_self()
image_xscale=2 //tuve que escalar la imagen sólo en la coordenada "x" para que se vea bien

Bueno con esto obtienen el id, el nombre y la foto de perfil de facebook para importar en sus juegos, espero les haya servido, saludos gente la tierra es plana ;)
« última modificación: Octubre 17, 2019, 01:09:02 pm por tristy3 »