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