Silvio.Falconi wrote:
tried gmail I see nothing ( only xbrowse and criptated strings) I allready abilitate the service
You see Id of thread and id of message
With Id of message, you can see all the properties of the message
Try with this sample
//----------------------------------------------------------------------------//
//
// GGMAIL.PRG: sample use Class TGMail from TGGoogle
// Author: Cristobal Navarro ( C ) 20/11/2017 - 16/02/2018
//
//----------------------------------------------------------------------------//
#include "Fivewin.ch"
#include "Splitter.ch"
#include "colores.ch"
REQUEST HB_CODEPAGE_ESWIN
Static nLeftPos
Static oMail
Function Main()
聽 聽local aMessages 聽 := Main1()
聽 聽if !Empty( aMessages )
聽 聽 聽 XbrwMail(,,,,, aMessages )
聽 聽endif
Return nil
//----------------------------------------------------------------------------//
Function Main1()
聽 聽local lSw 聽 聽:= .F.
聽 聽local aList 聽:= {}
聽 聽HB_CDPSELECT( "ESWIN" )
聽 聽
聽 聽oMail := TGMail():New()
// you can configure the name and path of the json file between New and Activate methods
// oMail:cJSonFile := ".\client_id.json"
聽 聽lSw 聽 := oMail:Activate()
聽 聽if lSw
聽 聽 聽
聽 聽 聽 //
聽 聽 聽 oMail:SentMessages()
聽 聽 聽 aList 聽 := AClone( oMail:aMessages )
聽 聽 聽 //XBrowse( oMail:aMessages )
聽 聽endif
Return aList 聽 //oMail:aMessages
//----------------------------------------------------------------------------//
Function XbrwMail( oWnd, nT, nL, nB, nR, aSource )
聽 聽local lWnd 聽 聽 聽 := .F.
聽 聽local oVSplitL
聽 聽local oBrw
聽 聽local oPnel1
聽 聽local nTop
聽 聽local nHeight
聽 聽local aMsgs 聽 聽 聽:= {}
聽 聽AEVal( aSource, { | a | AAdd( aMsgs, { a[ 1 ], a[ 2 ], "" } ) } )
聽 聽oMail:GetMessage( aMsgs[ 1 ][ 1 ] )
聽 聽nLeftPos 聽 聽:= Min( 300, Int( GetSysMetrics( 0 ) / 5 ) )
聽 聽if Empty( oWnd )
聽 聽 聽 lWnd 聽 聽 := .T.
聽 聽 聽 DEFINE WINDOW oWnd ;
聽 聽 聽 聽 聽TITLE " - Google Mail - " + FWVERSION + " - " + hb_Compiler() ;
聽 聽 聽 聽 聽PIXEL COLOR CLR_BLUE, CLR_WHITE //STYLE WS_POPUP
聽 聽endif
聽 聽nTop 聽 聽:= if( Empty( oWnd:oBar ), 0, oWnd:oBar:nBottom ) + 2
聽 聽nHeight := if( Empty( oWnd:oMsgBar ), 32, oWnd:oMsgBar:nTop - 2 )
聽 聽@ nTop, nLeftPos + 2 XBROWSE oBrw DATASOURCE aMsgs OF oWnd ;
聽 聽 聽 SIZE GetSysMetrics( 0 ) - nLeftPos - 4, GetSysMetrics( 1 ) - nHeight ;
聽 聽 聽 HEADERS "Thread", "Id", "Message" ;
聽 聽 聽 COLUMNS 2, 1, 3 ;
聽 聽 聽 PIXEL CELL LINES NOBORDER
聽 聽WITH OBJECT oBrw
聽 聽 聽 :l2007 聽 聽 聽 聽 聽 聽:= .F.
聽 聽 聽 //:nMarqueeStyle 聽 聽:= MARQSTYLE_DOTEDCELL
聽 聽 聽 :nStretchCol 聽 聽 聽:= 3
聽 聽 聽 :bClrHeader 聽 聽 聽 := { || { CLR_WHITE, CLR_GRAY } }
聽 聽 聽 :bClrSelFocus 聽 聽 := ;
聽 聽 聽 :bClrSel 聽 聽 聽 聽 聽:= { || { CLR_BLACK, CLR_HGRAY } }
聽 聽 聽 :lRecordSelector 聽:= .F.
聽 聽 聽 :lHScroll 聽 聽 聽 聽 := .F.
聽 聽 聽 :nColDividerStyle := ;
聽 聽 聽 :nRowDividerStyle := LINESTYLE_LIGHTGRAY
聽 聽 聽 :nRowHeight 聽 聽 聽 := 87
聽 聽 聽 WITH OBJECT :aCols[ 3 ]
聽 聽 聽 聽 聽:bClrStd 聽 聽 聽 := { || { CLR_BLUE, CLR_WHITE } }
聽 聽 聽 聽 聽:nDataStrAlign := 0
聽 聽 聽 聽 聽:bEditValue 聽 聽:= { || oMail:GetMessage( oBrw:aRow[ 1 ] ), oMail:cMessage }
聽 聽 聽 END
聽 聽 聽 :CreateFromCode()
聽 聽END
聽 聽if lWnd
聽 聽 聽 oPnel1 := TPanel():New( nTop + 2, 2, GetSysMetrics( 1 ) - nHeight, nLeftPos - 2, oWnd )
聽 聽 聽 oPnel1:SetColor( CLR_WHITE, METRO_GRIS7 )
聽 聽 聽
聽 聽 聽 @ nTop, nLeftPos SPLITTER oVSplitL ;
聽 聽 聽 聽 聽 聽VERTICAL ;
聽 聽 聽 聽 聽 聽PREVIOUS CONTROLS oPnel1 ;
聽 聽 聽 聽 聽 聽HINDS CONTROLS oBrw ;
聽 聽 聽 聽 聽 聽LEFT MARGIN 聽 0 ;
聽 聽 聽 聽 聽 聽RIGHT MARGIN 80 ;
聽 聽 聽 聽 聽 聽SIZE 1, GetSysMetrics( 1 ) - nHeight + 2 ;
聽 聽 聽 聽 聽 聽COLOR CLR_HGRAY ; //oWnd:nClrPane ;
聽 聽 聽 聽 聽 聽PIXEL OF oWnd
聽 聽 聽 oVSplitL:lStatic := .T.
聽 聽 聽 ACTIVATE WINDOW oWnd MAXIMIZED
聽 聽endif
Return nil
//----------------------------------------------------------------------------//