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?
(https://scontent.faep6-1.fna.fbcdn.net/v/t1.0-9/fr/cp0/e15/q65/72661071_980712638932963_5817430990800289792_o.jpg?_nc_cat=100&efg=eyJpIjoidCJ9&_nc_eui2=AeF87IwJCL4yQqAbJVLwiEb-d2bmDi8jF7yUZFgQi42R0RPxSkVHYSjfj6o83iHkO5Tgdm3WJ01BcexzKBZXA6mEld_p0bDKG4RWqQmYPtfCtA&_nc_oc=AQnSKxHuQa-b51KjHUg6314P3eJWTGE0GAnrO7Dwf0m23ZfOrYtK9X9gsuFYxIS1GMc&_nc_ht=scontent.faep6-1.fna&tp=1&oh=3b7698d5dbdc9c0b4887db141c9777f3&oe=5E61ED34)
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 (https://help.yoyogames.com/hc/en-us/articles/360004488072)
Usé 3 objetos:
ob_control
Event Create
[gml]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");[/gml]
Event Async -Social
[gml]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;
}[/gml]
Event Async - Load Image
[gml]if async_load[? "id"] == fb_picture
{
if async_load[? "status"] >= 0
{
ob_fb_graph_request.sprite_index = fb_picture;
}
}[/gml]
ob_login
Event Mouse Left
[gml]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);
}[/gml]
ob_fb_graph_request //este lo usé como prueba, puedes usas el mismo ob_control para efectuar esto
Event Mouse Left
[gml]var _l = ds_list_create();
ds_list_add(_l, "fields", "id,name,picture");
fb_graph_request("me", "GET", _l);
ds_list_destroy(_l);[/gml]
Event Draw
[gml]draw_self()
image_xscale=2 //tuve que escalar la imagen sólo en la coordenada "x" para que se vea bien
[/gml]
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 ;)