= Expresso Web Service = Este ''Draft'' é destinado à especificação dos requisitos referentes à implementação do ''Web Service'' do Expresso. Todas as informações contidas neste documento poderão sofrer alterações sem aviso prévio, até o fechamento do escopo deste subprojeto do Expresso. ---- == 1. Objetivo == ---- == 2. Compatibilidade == API: Versões > 2.2 ExpressoMail: Versões > 2.2 ContactCenter: Versões > 2.2 ---- == 3. Arquitetura == ---- == 4. Protocolo de Comunicação == JSON-RPC versão 1.0 ---- == 5. Recursos disponíveis == \\ \\ ||'''Método:'''||'''Expresso.login'''||Criar sessão autenticada no Expresso|| ||'''Parâmetros:'''||-user\\-password\\-auth||-Login do Usuario.\\-Senha do usuario.\\-Autenticacao existente, caso ja esteja logado.|| ||'''Retorno:'''||-auth||-auth: Chave de autenticacao do expresso (KP3 do usuario).|| \\ \\ ||'''Método:'''||'''Expresso.logout'''||Finalizar sessão autenticada no Expresso|| ||'''Parâmetros:'''||-auth||auth:Autenticacao existente, necessaria para destruir a sessao do usuario.|| ||'''Retorno:'''||-hasLogout||-hasLogout:(Boolean 0 ou 1 indicando se o logout foi realizado com sucesso)|| \\ \\ ||'''Método:'''||'''Mail.getUserFolders'''||Listar pastas de Email|| ||'''Parâmetros:'''||-auth\\-search\\-page\\-resultsPerPage||auth:Autenticacao do usuario.\\search:filtro por nome de pasta\\page:pagina atual\\resultsPerPage:Numero de resultados a retornar por pagina.|| ||'''Retorno:'''||-folders array(\\folderName,\\folderID,\\folderType,\\folderParentID,\\folderHasChildren,\\qtdMessages,\\qtdUnreadMessages,\\percentUsageOfTotalQuota,\\diskSize\\)||-folders:Array com todas as pastas retornadas.\\folderName:Nome da pasta.\\folderID:Caminho da pasta\\folderType:(1-Caixa de Entrada,2-Enviadas,3-Rascunhos,4-Lixeira,5-Pasta Comum,6-Pasta Compartilhada)\\folderHasChildren:(Boolean 0 ou 1)Indica se a pasta possui sub-pastas ou nao.\\qtdMessages:Quantidade de Mensagens na pasta.\\qtdUnreadMessages:Quantidade de Mensagens nao lidas.\\percentUsageOfTotalQuota:Percentual utilizado da quota do usuario para esta pasta.\\diskSize:Tamanho total da pasta utilizado do disco em Bytes.|| ||Exemplo de Retorno (JSON):||||[[{"result":{"folders":[{"folderName":"Caixa de Entrada","folderParentID":"","folderHasChildren":0,"qtdUnreadMessages":0,"qtdMessages":1176,"folderID":"INBOX","folderType":0,"diskSizeUsed":"43526754","diskSizePercent":0.297},{"folderName":"Enviado","folderParentID":"","folderHasChildren":0,"qtdUnreadMessages":0,"qtdMessages":412,"folderID":"INBOX\/Enviado","folderType":1,"diskSizeUsed":"4898464","diskSizePercent":0.033},{"folderName":"Spam","folderParentID":"","folderHasChildren":0,"qtdUnreadMessages":0,"qtdMessages":0,"folderID":"INBOX\/Spam","folderType":2,"diskSizeUsed":"0","diskSizePercent":0},{"folderName":"Lixeira","folderParentID":"","folderHasChildren":0,"qtdUnreadMessages":135,"qtdMessages":135,"folderID":"INBOX\/Lixeira","folderType":3,"diskSizeUsed":"133650","diskSizePercent":0.001}],"diskSizeUsed":95126528,"diskSizeLimit":146800640,"diskSizePercent":0.64},"error":null,"id":"3"}]] \\ \\ ||'''Método:'''||'''Mail.getUserMessages'''||Listar mensagens de uma pasta de Email|| ||'''Parâmetros:'''||-auth\\-folderID\\-msgID\\-search\\-page\\-resultsPerPage||auth:Autenticacao do usuario.\\folderID:Filtro por pastas (so retornara mensagens da pasta informada)\\\\search:filtro por assunto da mensagem, conteudo.\\page:pagina atual\\resultsPerPage:Numero de resultados a retornar por pagina.|| ||'''Retorno:'''||-messages array(\\msgID,\\folderID,\\msgDate,\\msgFrom array(fullName,mailAddress),\\msgTo array(array(fullName,mailAddress)),\\msgReplyTo array(array(fullName,mailAddress)),\\msgCC array(array(fullName,mailAddress)),\\msgBCC array(array(fullName,mailAddress)),\\msgBodyResume,\\msgBody,\\msgSeen,\\msgHasAttachments,\\msgAnswered,\\msgFlagged,\\msgDeleted,\\msgDraft,\\msgForwarded,\\msgSize\\)||-messages:Array com todas as mensagens retornadas.\\msgID:Identificador da mensagem.\\folderID:Identificador da Pasta da Mensagem.\\msgDate:(YYYY-mm-dd H:i:s) \\msgFrom: Array com o Nome do contato e email (fullName,mailAddress)\\msgReplyTo,msgTo,msgCC,msgBCC: Sao arrays e retornam N arrays contendo (fullName,mailAddress)\\msgBodyResume:Resumo do conteudo da mensagem (sem tags html)\\msgBody:Conteudo da Mensagem, campo somente retorna valores quando e passado o parametro msgID que especifica qual mensagem sera exibida.\\msgSeen:Boolean indicando se a mensagem foi marcada como lida.\\msgHasAttachments:Boolean - indica se tem anexos ou nao.\\msgAnswered:Boolean - flag do imap para Respondida\\msgFlagged:Boolean - flag do imap para importantes\\msgDeleted:Boolean - flag do imap para Deleted.\\msgDraft:Boolean - flag do imap para Drafts.\\msgForwarded:\\msgSize:Tamanho da mensagem em Bytes.|| \\ \\ ||'''Método:'''||'''Catalog.getUserContacts'''||Retorna os Contatos do usuario, pode trazer os contatos pessoais da agenda, como do catalogo geral, diferenciando-os apenas pelo type.|| ||'''Parâmetros:'''||-auth\\-search\\-contactType\\-page\\-resultsPerPage||auth:Autenticacao do usuario.\\search: busca por nome ou email do contato.\\contactType:(1:Agenda do Expresso,2:Catalogo Geral.)|| ||'''Retorno:'''||-contacts array(\\contactID,\\contactFullName,\\contactFirstName,\\contactLastName,\\contactHasImagePicture,\\contactType,\\contactMails array(),\\contactPhones\\)||contactID: Identificador do Contato.\\contactFullName:Nome completo do Contato\\contactFirstname:Primeiro nome do contato\\contactLastName:Ultimo Nome do Contato\\contactHasImagePicture:Boolean (0:Nao tem foto,1:possui foto).\\contactType:(1:Agenda do Expresso,2:Catalogo Geral.)\\contactMails:Array com os Emails do contato.\\contactPhones:Array com os telefones do contato.|| ||Retorno de Exemplo: (JSON)||{"result":{"contacts":[{"contactID":"817662","contactMails":["exemplodecontato@celepar.pr.gov.br"],"contactAlias":"nome do contato","contactFirstName":"nome do contato","contactLastName":"","contactFullName":"nome do contact","contactBirthDate":"","contactNotes":"","contactHasImagePicture":0}]},"error":null,"id":"4"}|| \\ \\