Hola.
La cosa es así:
Estoy "jugando" con las API para aprender a usarlas.
Ya aprendí a loguearme o en realidad a pedir el permiso desde mi aplicación para que los usuarios se lo puedan otorgar y poder leer sus datos de perfil, por ahora.
Uso un ShellExecute para lograrlo y un Twebbrowser.
En el ShellExecute que abra el link en el WebBrowser con lo siguiente:
'https://www.facebook.com/dialog/oauth?scope=' +
'user_about_me,' + 'public_profile' +
'&redirect_uri=http://preguntadosfreegifts.blogspot.com.ar&response_type=token&client_id=637808106295501'
Con eso logro que le pida al usuario que otorgue los permisos para leer sus datos, creo que de perfil publico y lo básico. Luego que me redireccione a la URL
http://preguntadosfreegifts.blogspot.com.ar
Una vez redireccionado, hago que copie esa URL desde la propiedad URL del componente y la guardo en una variable.
Esa URL contiene el Access_Token que es el dato escencial para poder acceder a los datos de los usuarios en Facebook.
Una vez con el Access_Token extirpado a una variable, lo que quiero hacer es ahí si, obtener los datos del usuario con lo siguiente:
Código Delphi
[-]procedure TForm1.btngetdataClick(Sender: TObject);
var
apilogin : string; datos : TStringStream; s : String; i, posi, contar : integer; begin
datos := TStringStream.Create('',TEncoding.UTF8); s := '';
contar := 0;
token := '';
faceid := ''; email := ''; apilogin := '';
userid := '';
appsession := '';
token := BuscarEntre('access_token=','&expires_in',URL_ACCESS_TOKEN);
if token <> '' then begin
Idhttp1.Get('https://graph.facebook.com/v2.0/me?fields=id,email' +
'&method=GET&format=json&access_token=' + token,datos); end;
if datos.dataString <> '' then
begin
email := BuscarEntre('{"email":"','","',datos.DataString); faceid := BuscarEntre('"id":"','"}',datos.DataString); end;
end;
Es algo así lo que quiero.
Pero el email me lo da así "raro" y el Facebook ID no es el mio o no es el que necesitaría para seguir. Me da otro FAcebook ID.
Sabrías por qué esos "errores"?????