Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Conectar a Facebook (https://www.clubdelphi.com/foros/showthread.php?t=79004)

maycampana 01-06-2012 16:54:33

Conectar a Facebook
 
Hola genios del club, quisiera saber si es posible conectarme a Facebook por ej. desde mi aplicación hecha en Delphi 6. Se puede hacer con algún componente Indy o cómo se puede hacer? Simplemente yo colocaría un botoncito que me abra el facebook. Muchas gracias por su ayuda. Saludos

maeyanes 01-06-2012 17:05:33

Hola...

Para poner un botón que te "abra" Facebook, solo tendrías que hacer algo más o menos así:

Código Delphi [-]
procedure MyForm.btnFacebookClick(Sender: TObject);
begin
  ShellExecute(Handle, nil, 'http://www.facebook.com', nil, nil, SW_SHOW)
end;

Ahora, si te quieres conectar a su API, ahí si tendrías que buscar en la documentación de Facebook sobre como hacerlo.


Saludos...

Chris 01-06-2012 19:27:41

Cita:

Empezado por maeyanes (Mensaje 434076)
Ahora, si te quieres conectar a su API, ahí si tendrías que buscar en la documentación de Facebook sobre como hacerlo.

Facebook y muchos más servicios utilizan OAuth para darle autorización a aplicaciones de terceros a conectarse al servicio y trabajar en nombre de sus usuarios.

OAuth no es muy díficil de implementar. El inconveniente es que trabaja únicamente sobre HTTP y la autorización normalmente se concede por medio de una interfaz HTML. Ésto último hace un poco díficil su implementación en aplicaciones nativas.

Nunca he trabajado con OAuth y servicios que lo utilicen, pero básicamente el sistema funciona así:
Lo primero que tienes que hacer es registrar tu aplicación en Facebook. Cuando la registres, Facebook te dará una "clave secreta" y otra "llave pública". La última la utilizarás para pedir la autorización. Si la autorización es dada, Facebook remitirá al usuario a una URL proporcionada por tu aplicación. Ésta URL le llaman "callback request/function" haciendo apología de las clásicas Callback functions encotradas en muchas APIs nativas.

Al controlador de respuesta (callback request) se le proporcionará una llave de autenticación que debe ser guardada por tu aplicación. Usarás ésa llave para interactuar con el servicio en nombre del usuario que te halla dado esa autorización.

Cómo ya deberás imaginar, las llamadas a la API son por medio de HTTP. Todas las llamadas deben incluir tu llave de autorización y la clave secreta previamente dada al momento de registrar tu aplicación con el servicio.

Las peculiaridades de la API de facebook las puedes encontrar en https://developers.facebook.com

Saludos!

PD.: Siempre es recomendable utilizar direcciones seguras (HTTPS) para trabajar con la API. Estarás enviado información confidencial en cada llamada. Las llaves podrían ser robadas por medio de un sniffer y así un atacante puede actuar en nombre de tu aplicación y de tus usuarios.

maycampana 01-06-2012 19:29:01

Conectar a Facebook
 
Hola Amigo, muchas gracias por tu ayuda, lo voy a probar, parece muy simple, espero que me funcione. Lo que quiero hacer es guardar con los datos personales de cada cliente su nombre en Facebook y desde mi aplicación conectarme por medio de un botón con el cliente seleccionado.

maycampana 01-06-2012 19:34:37

Facebook
 
A bueno, nada es tan fácil pero muchísimas gracias por la información. Antes estuve buscando por Internet y no encontré nada que me guiara, mil gracias.

maycampana 08-06-2012 16:49:33

Conectar con Facebook
 
Gracias maeyanes, el ShellExecute funciona perfecto, lo he utilizado en otra oportunidad pero no me avivé que serviría para esto también. Ahora voy a ver si le puedo agregar al link el nombre de alguna persona en Facebook para ubicarlo directamente. Por ej.
Delphi [-]

begin
ShellExecute(handle, nil, 'http//www.facebook.com'+/dario.perez, nil,nil, SW_SHOW);
end;

tiene que ser con una variable Char no? Gracias

maeyanes 08-06-2012 16:52:27

Hola...

Puedes concatenar la cadena:

Código Delphi [-]
var
  Username: string;

begin
  Username = 'dario.perez';
  ShellExecute(Handle, nil, 'http//www.facebook.com/' + Username, nil, nil, SW_SHOW)
end;


Saludos...

Chris 08-06-2012 17:07:31

Con tu permiso Maeyanes, permiteme hacerle una pequeña corrección a tu código:
Código Delphi [-]
var
    fb_profile_url: string;
begin
    fb_profile_url := 'http//www.facebook.com/dario.perez';
    ShellExecute(Handle, nil, PChar(fb_profile_url), nil, nil, SW_SHOW);
end;

El problema que había es que ShellExecute espera un puntero a una cadena, y no puedes concatenar un puntero con una cadena de Delphi a cómo lo estabas haciendo. Es un detalle que en ocasiones se nos olvida, pero es molesto cuando el compilador llora por estas pequeñas cosas.

Saludos!

maeyanes 08-06-2012 17:13:53

Hola...

Cita:

Empezado por Chris (Mensaje 434661)

El problema que había es que ShellExecute espera un puntero a una cadena, y no puedes concatenar un puntero con una cadena de Delphi a cómo lo estabas haciendo. Es un detalle que en ocasiones se nos olvida, pero es molesto cuando el compilador llora por estas pequeñas cosas.

Saludos!

y más cuando no tienes el compilador a mano para probarlo... jejeje



Saludos...

Chris 08-06-2012 17:19:10

Cita:

Empezado por maeyanes (Mensaje 434663)
y más cuando no tienes el compilador a mano para probarlo... jejeje

Ése soy yoooo! :D

maycampana 12-06-2012 20:12:47

boton a Facebook
 
Gracias Chris, tu código funciona perfectamente, como dice Maeyanes ya había probado y no se puede, da error de variables incompatibles, por eso pregunté si tenía que ser tipo PChar. Saludos

AlejandroCalica 05-01-2022 19:08:13

publicar en Facebook
 
si lo que yo quisiera es desde una app echa en delpbi es crear una publicacion con campor del formulario y que se carge como publicacion en facebook, se podria ? saben como


La franja horaria es GMT +2. Ahora son las 09:25:07.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi