API Google. Ejemplos

User avatar
Andrés González
Posts: 625
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Re: API Google. Ejemplos

Post by Andrés González »

Veo que parece que el calendar y el task son dos cosas completamente distintas, pese a que se presentan en el google calendar. El tasks parece que tiene una API distinta a la del google calendar: https://developers.google.com/google-apps/tasks/. Intentaré volver a el cuando entienda plenamente el google calendar.

Softruz, una cosa a ver si lo entiendo bien, cuando intento recuperar todos _, me devuelve el siguiente mensaje:
Valid calendar id must be supplied to favorites list in allcalendars projection
A que crees que se debe esto, ya que yo solo tengo un calendario particular de mi cuenta y recibo otro corporativo, y además el tema del task. No tocaria devolverme todos _, no sé, en un mensaje. Seguro que algo no hago bien, pero tu alta me la realiza cada vez en mi calendario particular. Estoy traduciendo la API del calendar para enterarme y se ve muy atractiva, pero hay cosas que no acabo de entender.

PD.: Veo que si cambio el codigo y pido _ de los que soy propietario, me da un mensaje con todos menos con el task.

Code: Select all

//Recivir _ que es propietario
strURL:="https://www.google.com/calendar/feeds/default/owncalendars/full"
strFormData = cEventCode
cResponse:=SendPostToUrl( strURL, strFormData,"application/atom+xml","GoogleLogin auth=" + AuthCode)
msginfo(cResponse)
Saludos

Andrés González desde Mallorca
User avatar
Baxajaun
Posts: 853
Joined: Wed Oct 19, 2005 2:17 pm
Location: Gatika. Bizkaia

Re: API Google. Ejemplos

Post by Baxajaun »

Buenas tardes/noches,

os funciona el ejemplo ?

Error description: Error BASE/2017 Argument error: AEVAL
Args:
[ 1] = C Error=BadAuthentication
Url=https://www.google.com/accounts/Continu ... 7dlwU0TXOA
Info=WebLoginRequired

[ 2] = B {|| ... }

Stack Calls
===========
Called from: => AEVAL( 0 )
Called from: calendar.prg => SENDPOSTTOURL( 46 )
Called from: calendar.prg => MAIN( 7 )

Muchas gracias.

Saludos
User avatar
Andrés González
Posts: 625
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Re: API Google. Ejemplos

Post by Andrés González »

Felix, primero tienes que utilizar una cuenta Google o cuenta dependiendo de google. Nosotros tenemos el correo corporativo en google fíjate elimino mi password que tendrias que poner el tuyo. Mi cuenta es agonzalez@calvia.com y funciona bien ya que es igual que si fuera una cuenta gmail. El dominio por así decirlo redirigido lo puedes contratar en google y asi tienes todas las funcionalidades como agonzalez@gmail.com esta te la dan gratis pero si quieres hacer uno de tu empresa te cuesta dinero, para eso tienes que hablar con algún comercial, pero después tienes un montón de ventajas (la site, el drive, el calendar y mil cosas mas de google) creo que ha sido el mejor cambio que hemos hecho en mi empresa. Si quieres mas información dime cosas ya que eso marca mucho la diferencia con los correos corporativos que no son de google.

Los msginfo deberían devolverte una pantalla con un montón de códigos ilegibles.

Code: Select all

////////////////////////////////
// Codigo Fuente
////////////////////////////

#include "FiveWin.ch"

Function Main()

//Autenticación
local strURL:= "https://www.google.com/accounts/ClientLogin",AuthCode:=""
local strFormData,myEmail:="agonzalez@calvia.com",myPassword:="aquielpasword",mySource:="project-example-1",cRespone:=""
strFormData = "Email=" + myEmail + "&Passwd=" + myPassword + "&source=" + mySource + "&service=cl"
cResponse:=SendPostToUrl( strURL, strFormData )
msginfo(cResponse)
AuthCode = Right(cResponse, Len(cResponse) - at("Auth=",cResponse) - 4)
msginfo(AuthCode)

cEventCode:=getEventCode(date(),"Test Event","Event Description","Your Name","Email","Cordoba")
msginfo(cEventCode)

// Añadir un nuevo evento
strURL = "http://www.google.com/calendar/feeds/default/private/full"
strFormData = cEventCode
cResponse:=SendPostToUrl( strURL, strFormData,"application/atom+xml","GoogleLogin auth=" + AuthCode)

// Recivir _
strURL:="https://www.google.com/calendar/feeds/default/allcalendars/full"
strFormData = cEventCode
cResponse:=SendPostToUrl( strURL, strFormData,"application/atom+xml","GoogleLogin auth=" + AuthCode)
msginfo(cResponse)

//Recivir _ que es propietario
strURL:="https://www.google.com/calendar/feeds/default/owncalendars/full"
strFormData = cEventCode
cResponse:=SendPostToUrl( strURL, strFormData,"application/atom+xml","GoogleLogin auth=" + AuthCode)
msginfo(cResponse)

Return Nil

Function SendPostToUrl( cUrl, cParams,cContentType,cAuthorization )
Local oOle,cRet:='',uRet
default cContentType:="application/x-www-form-urlencoded"
default cAuthorization:=""
Try
oOle := CreateObject( 'MSXML2.XMLHTTP' )
Catch
oOle := CreateObject( 'Microsoft.XMLHTTP' )
End
oOle:Open( 'POST', cUrl, .f. )

oOle:SetRequestHeader( "Content-Type",cContentType)
if !empty(cAuthorization)
oOle:SetRequestHeader( "Authorization",cAuthorization)
end if

oOle:Send( cParams )
SysRefresh()

#ifdef __XHARBOUR__
cRet := oOle:ResponseBody
#else
AEval(oOle:ResponseBody,{|uRet|cRet+=Chr(uRet)})
#endif
Return cRet

function dtos_format(fecha)
local cadena
if valtype(fecha) = "D"
cadena:=dtos(fecha)
if !empty(cadena)
return substr(cadena,1,4) + "-" + substr(cadena,5,2) + "-" + substr(cadena,7,2)
else
return "0000-00-00"
end if
else
return "0000-00-00"
end if
return "0000-00-00"

static function getEventCode(dDate,cEventName,cEventDescription,cYourName,cEmailAddress,cLocation,cStartTime,cEndTime)
local formattedDate:=""
default cStartTime:="17:00:00",cEndTime:="18:00:00"

// 'change the date into Google's yyyy-mm-dd format
formattedDate = dtos_format(dDate)

getEventCode = "<entry xmlns='http://www.w3.org/2005/Atom'" + CRLF +;
"xmlns:gd='http://schemas.google.com/g/2005'>" + CRLF +;
" <category scheme='http://schemas.google.com/g/2005#kind'" + CRLF +;
"term='http://schemas.google.com/g/2005#event'></category>" + CRLF +;
" <title type='text'>" +cEventName+ "</title>" + CRLF +;
"<content type='text'>" +cEventDescription+ "</content>" + CRLF +;
"<author>" + CRLF +;
"<name>" +cYourName+ "</name>" + CRLF +;
"<email>" +cEmailAddress+ "</email>" + CRLF +;
"</author>" + CRLF +;
"<gd:transparency" + CRLF +;
"value='http://schemas.google.com/g/2005#event.opaque'>" + CRLF +;
"</gd:transparency>" + CRLF +;
"<gd:eventStatus" + CRLF +;
"value='http://schemas.google.com/g/2005#event.confirmed'>" + CRLF +;
"</gd:eventStatus>" + CRLF +;
"<gd:where valueString='" +cLocation+ "'></gd:where>" + CRLF +;
"<gd:when startTime='" + formattedDate + "T" + cStartTime+"'" + CRLF +;
"endTime='" + formattedDate + "T" + cEndTime+"'></gd:when>" + CRLF +;
"</entry>"
return getEventCode
 
Saludos

Andrés González desde Mallorca
User avatar
Baxajaun
Posts: 853
Joined: Wed Oct 19, 2005 2:17 pm
Location: Gatika. Bizkaia

Re: API Google. Ejemplos

Post by Baxajaun »

Andrés,

me sigue dando el mismo error.

Muchas gracias.

Saludos
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: API Google. Ejemplos

Post by cnavarro »

Felix, a mi me da el mismo error que a ti
En mi cuenta de correo recibo un mail indicándome que alguien ha intentado acceder a la cuenta

Andres, sabes por qué puede ocurrir esto?
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
Baxajaun
Posts: 853
Joined: Wed Oct 19, 2005 2:17 pm
Location: Gatika. Bizkaia

Re: API Google. Ejemplos

Post by Baxajaun »

Buenos días,

creo que necesitamos una clave para poder usar las APIs de Google. A los que les haya funcionado el ejemplo, lo podriais probar ahora ?

Creo que ha cambiado la política de Google y ahora se necesita una clave para usar las APIs.

Muchas gracias.

Saludos
User avatar
RenOmaS
Posts: 205
Joined: Fri Oct 07, 2005 5:07 pm

Re: API Google. Ejemplos

Post by RenOmaS »

Buenas
Creo que tienen que tner activado esto en sus cuentas
https://www.google.com/settings/security/lesssecureapps

Pero igual me da error

Code: Select all

Application
===========
   Path and name: D:\Test\Fivedit\noname.exe (32 bits)
   Size: 3,023,360 bytes
   Compiler version: Harbour 3.2.0dev (r1412151448)
   FiveWin  Version: FWH 15.01
   Windows version: 6.1, Build 7600 

   Time from start: 0 hours 0 mins 2 secs 
   Error occurred at: 01/30/15, 10:40:35
   Error description: Error BASE/2017  Argument error: AEVAL
   Args:
     [   1] = C   SID=DQAAACEBAAAG0-gguZW0_71c9quEUxxSk_MGCYhEUtocQ5eF0UZmYYYKKONL6nIa43AcL27bUTaOAYetvLDzv12jWqZ52Y2tRFCRYyWt6WyXVWNW0NNBD4UjxeWK0DZiyHCgiWySELU2VfHBOrU2TwPiiOkGODX1gb_mLkiNTQg8pTc6O4FH0rXNxnHbfY1i_9jMaylSqIl7SXSPEz5wY7TqvNyVGFHqfrVew66CF9r3b_jio9gi18QL5TKFcWfVNKAj81M4RKCWaydHzIsQyYWGzzuKg6j1wArDgXb7znNWS5smY6iC7hlG-tTVXXTZGxp_51IwHoKCMfNWrT97r9Lq2SXqrS21zxuUsu9sw6fhOx0wzc_O9cMXfWfgzKlqrYtsvjGpDMFfAa4vHQ-ZRZ-5gPs57Qd9
LSID=DQAAACMBAACqOrCtkd8NE2ndG2Tn8B3iV5p-Jul7ffYvw2Wc8Tu7reYt02_fg0KGeVOmirNRJpxCKn8drmKHtpUoDnIvLRZtOjtdol5BGaRNxm7rkGvFHVgso5Z2cG5uuHlob-ZtZ4wOaG7_7Kr583QuPch_DL2nUipf9b8MQlbu9Qp0QEVj9NsQaIbE7M9kboQNtJuV0ONusvrKSK9YMp5eTJCFBvFd6G3-MD3lPdCrhQCNu-SDn2JjvIQ9pMRYaYDnkEmW3-sRxJfhnUg25janoB39PAHMt58KPEIQgPoRZwWFpxKYWlICq2jeif37ql7y_Hf7M9s9q53PpXPTz5-LzbdF3kl8Obnf1nMrwF-YU314x-SaMG9Glni9JjvM45sAd3JatPbreftDEcDt9gzZchgyTAID
Auth=DQAAACMBAACqOrCtkd8NE2ndG2Tn8B3iV5p-Jul7ffYvw2Wc8Tu7reYt02_fg0KGeVOmirNRJpxCKn8drmKHtpUoDnIvLRZtOjtdol5BGaRNxm7rkGvFHZRWfwg-JOMDNPf_aVQWWTzUOU8RLOYXU4oTNORmfewgVnWI0Lxu1M2vTZLurwUMks1EvCRInFEpHAw920tPe13qtbVu7Mhsl3o2nsTYrUzbW8AtD130cID7RMsezDufQtxuXpQa4KyGKuvszHGkPh4hzKajQAo6mcF4BxPnu4NBU4jP2m9YOLka_VT3d6Dpoos0fWifZQbrfM5AG6Q9AAlolc_uGK-pgo-wNqDJTgYrClnrcFBJNsJZqeyQfLo2p_TufKZSLmxqzpz3fhiK-7Zd1ZeiFUZbdpNoTkLyL7wy

     [   2] = B   {|| ... }

Stack Calls
===========
   Called from:  => AEVAL( 0 )
   Called from: noname.prg => SENDPOSTTOURL( 55 )
   Called from: noname.prg => MAIN( 10 )
 
Se supone que oOle:ResponseBody deve ser un array pero es una cadena.
Saludos/regards
RenOmaS

skype: americo.balboa
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: API Google. Ejemplos

Post by cnavarro »

Ya lo he intentado tambien
Es porque hay que darse de alta como usuario, te dan 60 dias de prueba ( bueno 300 $ de credito ) y luego decides si te quedas o no
O por lo menos eso es lo que he entendido
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
Baxajaun
Posts: 853
Joined: Wed Oct 19, 2005 2:17 pm
Location: Gatika. Bizkaia

Re: API Google. Ejemplos

Post by Baxajaun »

Cristobal,

puedes poner el enlace dónde has leido eso ?

Muchas gracias.

Saludos
User avatar
Baxajaun
Posts: 853
Joined: Wed Oct 19, 2005 2:17 pm
Location: Gatika. Bizkaia

Re: API Google. Ejemplos

Post by Baxajaun »

Esto es lo que me han comentado:

Claro es muy sencillo, lo único que debes hacer es crear un proyecto en la consola de administración
https://console.developers.google.com
En credenciales te dará un ID de cliente y una llave, la cuál usarás para cualquiera de las APIs y son gratuitas y fácil de implementar.

Saludos
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: API Google. Ejemplos

Post by cnavarro »

Vale, ya he creado el proyecto, y he ido al apartado "Crear ID Cliente Nuevo" y despues a "Crear Clave Nueva"
Felix, como se implementa en el ejemplo?
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
Baxajaun
Posts: 853
Joined: Wed Oct 19, 2005 2:17 pm
Location: Gatika. Bizkaia

Re: API Google. Ejemplos

Post by Baxajaun »

Hola Cristobal,

yo también he creado un proyecto. Lo estoy intentando con el ejemplo de softcruz y Andrés, con los datos del proyecto nuevo creado. Si consigo algo os cuento.

Saludos
User avatar
Maurizio
Posts: 705
Joined: Mon Oct 10, 2005 1:29 pm
Contact:

Re: API Google. Ejemplos

Post by Maurizio »

Hello,
I also have problems to pass API v3 .
When you have the ID Client try :
https://accounts.google.com/o/oauth2/au ... %20profile
This return a web page . I dont know how to switch over automatically :(

Regards Maurizio
User avatar
Baxajaun
Posts: 853
Joined: Wed Oct 19, 2005 2:17 pm
Location: Gatika. Bizkaia

Re: API Google. Ejemplos

Post by Baxajaun »

Hello Maurizio,

thanks for your help. I've used two ways to ask:

- a Google's guy

- a Google's expert

when i'll have a answer from them, i'll communicate to you.

Regards
User avatar
Baxajaun
Posts: 853
Joined: Wed Oct 19, 2005 2:17 pm
Location: Gatika. Bizkaia

Re: API Google. Ejemplos

Post by Baxajaun »

Buenos días,

me han recomendado seguir este enlace

https://developers.google.com/google-ap ... nstantiate

Saludos
Post Reply