sapo mail webservices
Post on 28-Jan-2015
145 Views
Preview:
DESCRIPTION
TRANSCRIPT
SAPO Mail - Webservices
•Nuno Loureiro <nuno@co.sapo.pt>•Carlos Pires <acmpires@co.sapo.pt>•André Luís <aluis@co.sapo.pt>
14 de Novembro 2007
SAPO Mail - Webservices
Arquitectura
Exemplos Práticos
Contactos
Credenciais
Aspectos Gerais
Arquitectura do Webmail
SAPO Mail - Webservices
Aspectos Gerais
Exemplos Práticos
Contactos
Credenciais
Arquitectura
Mail Webservices - Aspectos Gerais
Operações disponíveis:Mail:
GetStatus;GetLastMails;GetMailbox;
Contactos:ListAllContacts;GetContact;AddContact;DeleteContact;SearchContacts;SetContact.
Mail Webservices - Aspectos Gerais
End-Point:http://services.sapo.pt/Mail
WSDL:http://services.sapo.pt/Metadata/Contract/Mail
Namespace:http://services.sapo.pt/definitions
Exemplo Prático:http://services.mail.sapo.pt/codebits
Operator (Firefox):http://addons.mozilla.org/en-US/firefox/addon/4106
User-script para Operator (Firefox):http://services.mail.sapo.pt/operator/js/sapomail.js
SAPO Mail - Webservices
Credenciais
Exemplos Práticos
Contactos
Aspectos Gerais
Arquitectura
Mail Webservices - Credenciais - Objecto ESBCredentials1
• ESBUsername• ESBPassword
ESBCredentials
Usado para a autenticação nos webservices do mail;
class ESBCredentials { public $ESBUsername; //string public $ESBPassword; //string}
Todas as operações dos webservices do mail requerem a definição de um SOAP Header com as credenciais do utilizador.
SAPO Mail - Webservices
Exemplos Práticos
Contactos
Credenciais
Aspectos Gerais
Arquitectura
Mail Webservices - Mail - Objectos1
• Status• ArrayOfLastMail
Mailbox
Status• Total• Unseen• Recent
PageInfo• PageNumber• RecordsCount• MaxRecords
LastMail• MessageId• FromName• FromEMail• Subject• Date• Seen
• Recent• Answered• Deleted• Flagged• Size (in bytes)
• PageInfo• LastMail
ArrayOfLastMail
Mail Webservices - Mail - Operações (1)
GetStatus
class Status { public $Total; //int public $Unseen; //int public $Recent; //int}
GetStatus
Mail Webservices - Mail - Operações (2)
GetLastMails
class ArrayOfLastMail { public $PageInfo; public $LastMail = array();}
class LastMail { public $MessageId; //int (imap uid) public $FromName; //string public $FromEMail; //string public $Subject; //string public $Date; //string public $Seen; //boolean public $Recent; //boolean public $Answered; //boolean public $Deleted; //boolean public $Flagged; //booelan public $Size; //int (in bytes)}
class PageInfo { public $PageNumber; //int public $RecordsCount; //int public $MaxRecords; //int}
GetLastMails• page (1 by default)• limit (10 by default, max 50)
Headers das mensagens pedidas;
Ordenação: ARRIVAL DATE DESC
Mail Webservices - Mail - Operações (3)
GetMailbox
class Mailbox { public $Status; public $ArrayOfLastMail;} class ArrayOfLastMail {
public $PageInfo; //PageInfo public $LastMail = array(); //LastMail}
class Status { public $Total; //int public $Unseen; //int public $Recent; //int}
GetMailbox• page (1 by default)• limit (10 by default, max 50)
Headers das mensagens pedidas;
Ordenação: ARRIVAL DATE DESC
Mail Webservices - Mail
SAPO Mail - Webservices
Contactos
Exemplos Práticos
Credenciais
Aspectos Gerais
Arquitectura
Mail Webservices - Contactos - Objectos1
• ContactInfo• Contact
ArrayOfContact
Contact ContactInfo• ContactId• Name• Alias• Email• HomeAddress• WorkAddress• HomePhone• WorkPhone
• CellPhone• Fax• Title• Company• Notes• PGPPublicKey• SMimePublicKey• FreeBusyURL
• RecordsCount• SearchExpression (opcional)
Mail Webservices - Contactos - Operações (1)
ListAllContacts
class Contact { public $ContactId; //string public $Name; //string public $Alias; //string public $Email; //string public $HomeAddress; //string public $WorkAddress; //string public $HomePhone; //string public $WorkPhone; //string public $CellPhone; //string public $Fax; //string public $Title; //string public $Company; //string public $Notes; //string public $PGPPublicKey; //string public $SMimePublicKey; //string public $FreeBusyURL; //string}
class ArrayOfContact { public $ContactInfo; public $Contact = array();}
class ContactInfo { public $RecordsCount; //int public $SearchExpression; //string}
ListAllContacts
Mail Webservices - Contactos - Operações (2)
GetContact
class Contact { public $ContactId; //string public $Name; //string public $Alias; //string public $Email; //string public $HomeAddress; //string public $WorkAddress; //string public $HomePhone; //string public $WorkPhone; //string public $CellPhone; //string public $Fax; //string public $Title; //string public $Company; //string public $Notes; //string public $PGPPublicKey; //string public $SMimePublicKey; //string public $FreeBusyURL; //string}
GetContact• ContactID (string)
Mail Webservices - Contactos - Operações (3)
AddContact
057259c0271b5cf71bb8e9be7ace49e2
AddContact• Contact (object)
Campo gerado pelo webservice:
ContactId; Obrigatório:
Name.
ContactId (hash md5)
Mail Webservices - Contactos - Operações (4)
SetContact
true
SetContact• ContactID (string)• Contact (object)
Campo ignorado pelo webservice:
ContactId;
false
Sucesso Erro
Mail Webservices - Contactos - Operações (5)
SearchContact
class Contact { public $ContactId; //string public $Name; //string public $Alias; //string public $Email; //string public $HomeAddress; //string public $WorkAddress; //string public $HomePhone; //string public $WorkPhone; //string public $CellPhone; //string public $Fax; //string public $Title; //string public $Company; //string public $Notes; //string public $PGPPublicKey; //string public $SMimePublicKey; //string public $FreeBusyURL; //string}
class ArrayOfContact { public $ContactInfo; public $Contact = array();}
class ContactInfo { public $RecordsCount; //int public $SearchExpression; //string}
SearchContact• SearchExpression (string != ‘’) Nome
Mail Webservices - Contactos - Operações (6)
DeleteContactDeleteContact
• ContactID (string)
true false
Sucesso Erro
Mail Webservices - Contactos
Mail Webservices - Contactos
SAPO Mail - Webservices
Exemplos Práticos
Contactos
Credenciais
Aspectos Gerais
Arquitectura
Mail Webservices - Exemplos Práticos - SOAP Request
<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://services.sapo.pt/definitions"> <SOAP-ENV:Header> <ns1:ESBCredentials> <ns1:ESBUsername>someuser@sapo.pt</ns1:ESBUsername> <ns1:ESBPassword>somepass</ns1:ESBPassword> </ns1:ESBCredentials> </SOAP-ENV:Header> <SOAP-ENV:Body> <ns1:GetMailbox> <ns1:page>1</ns1:page> <ns1:limit>10</ns1:limit> </ns1:GetMailbox> </SOAP-ENV:Body></SOAP-ENV:Envelope>
Mail Webservices - Exemplos Práticos - SOAP Request
<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://services.sapo.pt/definitions"> <SOAP-ENV:Header> <ns1:ESBCredentials> <ns1:ESBUsername>someuser@sapo.pt</ns1:ESBUsername> <ns1:ESBPassword>somepass</ns1:ESBPassword> </ns1:ESBCredentials> </SOAP-ENV:Header> <SOAP-ENV:Body> <ns1:ListAllContacts/> </SOAP-ENV:Body></SOAP-ENV:Envelope>
Mail Webservices - Exemplos Práticos - PHP5 Client Example
<?php
require_once dirname(__FILE__) . '/Mail_client_conf.php'; // Configrequire_once dirname(__FILE__) . '/Mail_types.php'; // Class types
$user = 'someuser@sapo.pt';$pass = 'somepass';
$ESBC = new ESBCredentials_t();$ESBC->ESBUsername = $user;$ESBC->ESBPassword = $pass;
$GetMailbox = new GetMailbox_t();$GetMailbox->page = 1;$GetMailbox->limit = 10;
$paramMailbox = (isset($GetMailbox)) ? array('parameters' => $GetMailbox) : array();
// [ ---> Continua ]
Mail Webservices - Exemplos Práticos - PHP5 Client Example (2)
$client = new SoapClient( /* This should be local, avoid one network call */ 'http://services.sapo.pt/Metadata/Contract/Mail', array('location' => "http://services.sapo.pt/Mail", 'classmap' => $classmap));
$header = new SoapHeader('http://services.sapo.pt/definitions', 'ESBCredentials', $ESBC);
try { $response = $client->__soapCall('GetMailbox', $paramMailbox, null, $header); /* Your Code Here */
} catch (SoapFault $e) { $text = (!$e->getMessage()) ? $e->faultstring : $e->getMessage(); echo "SOAP FAULT: $text\n";}
?>
Mail Webservices - Exemplos Práticos - PHP CodeGenerator
<?php
require_once dirname(__FILE__) . '/Mail_client_conf.php';require_once dirname(__FILE__) . '/Mail_client.php';
$client = new Mail_client($conf);$client->makeHeader('someuser@sapo.pt', 'somepass');
/* GetMailbox(page, limit) */$response = $client->GetMailbox(1, 10);
/* ListAllContacts *///$response = $client->ListAllContacts();
/* AddContact(Contact) *///$Contact = new Contact_t();//$Contact->Name = 'somename';// ...//$response = $client->AddContact($Contact);
/* Your Code Here */?>
Mail Webservices - Exemplos Práticos - Em Acção (1)
Agora é tempo de ver tudo isto em acção:Listagem de Mails e Contactos:
Webservices:GetMailbox;ListAllContacts;
Importação de contactos para o webmail:Webservices:
AddContact;Ferramentas:
Microformatos;Operator (extensão Firefox);
Mail Webservices - Exemplos Práticos - Em Acção (2)
Screencasts de demos de utilização:ListAllContacts:
http://services.mail.sapo.pt/codebits/swf/ListAllContacts.swfGetMailbox:
http://services.mail.sapo.pt/codebits/swf/GetMailbox.swf
Screencast de instalação e uso de um user-script para a extensão para Firefox Operator:Adicionar hCard de uma página ao webmail do SAPO:
http://services.mail.sapo.pt/codebits/swf/Operator.swf
top related