Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Delphi para la web
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-05-2013
Avatar de elcharlie
elcharlie elcharlie is offline
Miembro
 
Registrado: mar 2013
Ubicación: Bilbao
Posts: 174
Poder: 12
elcharlie Va por buen camino
Problema al enviar en POST con Google Data API Delphi

Buenas gente:
Estoy haciendo una mini aplicacion que sincronice con gdata desde Delphi, y de momento me loqueo, y retorno información con get, pero a la hora de usar el comando POST, y enviarle una estructura para que cree un registro, siempre me da error, y no encuentro solución, he probado de todo, y por ultimo, lo que he hecho ha sido intentar dar de alta un grupo de contactos con el ejemplo de google pero nada, os pongo el ejemplo por si alguien me puede echar una mano.
Gracia de antemano:

Última edición por elcharlie fecha: 21-05-2013 a las 13:42:19.
Responder Con Cita
  #2  
Antiguo 21-05-2013
Avatar de elcharlie
elcharlie elcharlie is offline
Miembro
 
Registrado: mar 2013
Ubicación: Bilbao
Posts: 174
Poder: 12
elcharlie Va por buen camino
No se que ha Pasado os Pongo el post Original:
Buenas gente:
Estoy haciendo una mini aplicacion que sincronice con gdata desde Delphi, y de momento me loqueo, y retorno informacion con get, pero a la hora de usar el comando POST, y enviarle una estructura para que cree un registro, siempre me da error, y no encuentro solucion, he probado de todo, y por ultimo, lo que he hecho ha sido intentar dar de alta un grupo de contactos con el ejemplo de google pero nada, os pongo el ejemplo por si alguien me puede echar una mano.
Gracia de antemano:

Código Delphi [-]
function CreateGroup(Titulo: PAnsiChar): PChar; stdcall;
var
  XMLDoc: TNativeXml;
  ListaNodos: TXmlNodeList;
  Node: TXmlNode;
  NodeExt: TXmlNode;
  createRequest: string;

  Send: Thttpsend;
  RetornoString: AnsiString;
  I: Integer;
  lPostData: TStringList;
begin
  Result := PChar('-1');
  if ((AuthID <> '') and (Titulo <> '')) then
  begin
  // estructura en https://developers.google.com/google...contact_groups
  // Tambien lo he probado en String en vez de un XML sin exito
    XMLDoc := TNativeXml.Create;
    XMLDoc.CreateName('atom:entry');
    XMLDoc.Root.WriteAttributeString('xmlns:gd',
      'http://schemas.google.com/g/2005');
    XMLDoc.Root.WriteAttributeString('xmlns:atom',
      'http://www.w3.org/2005/Atom');
    Node := XMLDoc.Root.NodeNew('atom:category');
    Node.WriteAttributeString('scheme',
      'http://schemas.google.com/g/2005#kind');
    Node.WriteAttributeString('term',
      'http://schemas.google.com/contact/2008#group');
    Node := XMLDoc.Root.NodeNew('atom:title');
    Node.WriteAttributeString('type', 'text');
    Node.ValueAsUnicodeString := String(Titulo);
    NodeExt := XMLDoc.Root.NodeNew('gd:extendedProperty');
    NodeExt.WriteAttributeString('name', 'more info about the group');
    Node := NodeExt.NodeNew('info');
    Node.ValueAsUnicodeString := 'Nice people.';
    XMLDoc.SaveToFile('C:\CarlosP.xml');

    Send := Thttpsend.Create;
    Send.MimeType := 'application/atom+xml';
    Send.Headers.Clear;
    Send.Headers.Add('GData-Version: 3.0');
    Send.Headers.Add('Authorization: GoogleLogin auth=' + AuthID); //Es la Autentificacion dada al loguearme por google

    XMLDoc.SaveToStream(Send.Document);


    try
      if (Send.HTTPMethod('POST','https://www.google.com/m8/feeds/groups/default/full')) then
      begin
        Application.MessageBox(PChar(inttostr(Send.ResultCode)), '', 0);
      end;
      Application.MessageBox(PChar(inttostr(Send.ResultCode)), '', 0);
    except
      on e: Exception do
        Application.MessageBox(PChar(e.ToString), '', 0);  // Siempre Entra Aqui codigo 500
    end;
  end;


end;
Responder Con Cita
  #3  
Antiguo 21-05-2013
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 18
Chris Va por buen camino
¿Cuál es el error que te está dando el código anterior?
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #4  
Antiguo 21-05-2013
Avatar de elcharlie
elcharlie elcharlie is offline
Miembro
 
Registrado: mar 2013
Ubicación: Bilbao
Posts: 174
Poder: 12
elcharlie Va por buen camino
Ejecutar, ejecuta bien, pero siempre que intento enviar algo me devuelve Bad request 401, o desde la excepcion me retorna 500.
es al hacer esto:
Código Delphi [-]
try
      if (Send.HTTPMethod('POST','https://www.google.com/m8/feeds/groups/default/full')) then
      begin
        Application.MessageBox(PChar(inttostr(Send.ResultCode)), '', 0);
      end;
      Application.MessageBox(PChar(inttostr(Send.ResultCode)), '', 0);
    except
      on e: Exception do
        Application.MessageBox(PChar(e.ToString), '', 0);  // Siempre Entra Aqui codigo 500
    end;
Es como si la sintaxis del fichero que intento enviar estuviera mal, pero he probado de diferentes maneras y siempre me devuelve lo mismo, vamos que no puedo enviarle información, y la verdad me tiene un poco desesperado, yo que había empezado con los contactos porque a priori era mas sencillo, y ya ves tu.
Responder Con Cita
  #5  
Antiguo 21-05-2013
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 18
Chris Va por buen camino
Cómo estás haciendo la autenticación con Google? Estás usando OAuth2?
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #6  
Antiguo 22-05-2013
Avatar de elcharlie
elcharlie elcharlie is offline
Miembro
 
Registrado: mar 2013
Ubicación: Bilbao
Posts: 174
Poder: 12
elcharlie Va por buen camino
Pues no te se decir, le envio el accounType, el EMail del usuario, el Password, el service y me devuelve la Autentificacion. Para loguearme uso las InetSuite, y estaba probando para enviar el XMl con ellas y no he podido, por eso el proceso de arriba uso Synapse.
Responder Con Cita
  #7  
Antiguo 23-05-2013
Avatar de elcharlie
elcharlie elcharlie is offline
Miembro
 
Registrado: mar 2013
Ubicación: Bilbao
Posts: 174
Poder: 12
elcharlie Va por buen camino
A Nadie se lo ocurre algo? Me podeis echar una mano? estoy super atascado
Responder Con Cita
  #8  
Antiguo 24-05-2013
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 18
Chris Va por buen camino
Cita:
Empezado por elcharlie Ver Mensaje
A Nadie se lo ocurre algo? Me podeis echar una mano? estoy super atascado
Hola Charlie!

Tengo mucha ganas de ayudarte a resolver tu problema. Pero por cuestiones de tiempo en mi trabajo no he podido ni abrir Delphi.

Saludos!
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #9  
Antiguo 24-05-2013
Avatar de elcharlie
elcharlie elcharlie is offline
Miembro
 
Registrado: mar 2013
Ubicación: Bilbao
Posts: 174
Poder: 12
elcharlie Va por buen camino
Cita:
Empezado por Chris Ver Mensaje
Hola Charlie!

Tengo mucha ganas de ayudarte a resolver tu problema. Pero por cuestiones de tiempo en mi trabajo no he podido ni abrir Delphi.

Saludos!

Muchas gracias Chris!!, Pero creo que ya lo he conseguido, ya te contare! Gracias de todas formas, un saludo.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Enviar y recibir data del ApdComport harimuya Varios 0 06-06-2011 22:26:03
delphi5 TIdHTTP problemas para enviar variables post con acentos ing_alsaac Internet 0 01-02-2011 22:11:36
Enviar teclas de control a Google Earth vejerf Varios 9 21-05-2008 09:31:58
enviar por POST o GET a 2 ficheros distintos halizia PHP 3 10-09-2007 13:01:30
Usar Post para enviar información a otra página halizia PHP 3 20-12-2006 15:55:12


La franja horaria es GMT +2. Ahora son las 21:37:23.


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
Copyright 1996-2007 Club Delphi