Vous êtes sur la page 1sur 17

API olx.com.

br
Utilizando o protocolo OAuth 2.0

Estemanualpropriedadeda OLX enopermitidoaoportadordessedocumentoreproduzir,transformar,modificar,desmontar,


realizarengenhariainversa,distribuir,alugar,fornecer,colocardisposiodopblico,atravsdequalquermodalidadede
comunicaopblica,qualquerdoselementosreferidosnopresentemanual.
Resumo

Este documento descreve como utilizar o protocolo oAuth 2.0 como forma de autenticao na
APIolx.com.bratravsdeumaaplicao web.

OAuth 2.0 um protocolo relativamente simples. No incio, voc registra sua aplicao no
olx.com.br, depois a aplicao solicita uma chave de acesso ao servidor de autenticao do
olx.com.br e ento utiliza essa chave para receber as informaes de um recurso da API
olx.com.brquedesejaacessar.

Estemanualpropriedadeda OLX enopermitidoaoportadordessedocumentoreproduzir,transformar,modificar,desmontar,


realizarengenhariainversa,distribuir,alugar,fornecer,colocardisposiodopblico,atravsdequalquermodalidadede
comunicaopblica,qualquerdoselementosreferidosnopresentemanual.
ndice

1.Registrodaaplicao
2.Sequnciadeautorizao
2.1.Cdigodeautenticao
2.1.1.Requisiodocdigodeautenticao
2.1.1.1.Permisses
2.1.2.Respostadarequisio
2.1.2.1.Confirmaodaautorizao
2.1.2.2.Errosdeautenticao
2.2.Chavedeacesso
2.2.1.Requisiodachavedeacesso
2.2.2.Respostaderequisio
2.2.2.1.Respostabemsucedida
2.2.2.2.Respostadeerro
3.APIolx.com.br
3.1AcessoaAPI
3.2Referncia
3.2.1basic_user_info
3.2.2autoupload
4.Exemplodeutilizao
5.Referncias

Estemanualpropriedadeda OLX enopermitidoaoportadordessedocumentoreproduzir,transformar,modificar,desmontar,


realizarengenhariainversa,distribuir,alugar,fornecer,colocardisposiodopblico,atravsdequalquermodalidadede
comunicaopblica,qualquerdoselementosreferidosnopresentemanual.
1. Registro da aplicao

Antes de iniciar o protocolo de autenticao com o servidor olx.com.br, o cliente dever


registrarsuaaplicao,fornecendoosseguintesdados:

Nomedocliente
Nomedaaplicao
Descriodaaplicao
Website
Telefone
Email
URIs de redirecionamento (identifica um endpoint do cliente que ser alvo de
redirecionamentonoprocessodeautenticaomnimo1emximo3ver seo2.1)

Aps receber os dados, o olx.com.br entrar em contato com o cliente para fornecer sua
lient_id e sua chave de segurana, necessrios para iniciar a sequncia de
identificao c
autorizao.

Estemanualpropriedadeda OLX enopermitidoaoportadordessedocumentoreproduzir,transformar,modificar,desmontar,


realizarengenhariainversa,distribuir,alugar,fornecer,colocardisposiodopblico,atravsdequalquermodalidadede
comunicaopblica,qualquerdoselementosreferidosnopresentemanual.
2.
Sequncia de autorizao

Aps o cliente registrar sua aplicao no olx.com.br e obter sua identificao (client_id), ser
possveldarincioasequnciadeautorizao.

A sequncia de autorizao tem incio quando a aplicao redireciona o navegador para uma
URLdoolx.com.br.NestaURLseroincludosalgunsparmetrosqueindicamotipodeacesso
que est sendo requerido. O olx.com.br o responsvel pela autenticao do usurio e por
confirmar a permisso de acessoasuasinformaes erecursos.Comoresultado,o olx.com.br
retorna para a aplicao um cdigo de autorizao. Aps receber o cdigo de autorizao a
aplicao poder forneclo (junto com sua identificao e senha) para obter em troca uma
chave de acesso. A aplicao poder ento utilizar essa chave de acesso para acessar a API
olx.com.br .

Estemanualpropriedadeda OLX enopermitidoaoportadordessedocumentoreproduzir,transformar,modificar,desmontar,


realizarengenhariainversa,distribuir,alugar,fornecer,colocardisposiodopblico,atravsdequalquermodalidadede
comunicaopblica,qualquerdoselementosreferidosnopresentemanual.
2.1. Cdigo de autenticao

O cdigo de autorizao obtido utilizando o servidor de autorizao do olx.com.br como


intermediadorentreocliente/aplicaoeousurio.

O servidor de autenticao valida a requisio para certificar que todos os parmetros
obrigatrios esto vlidos e presentes. Se a requisio for vlida o servidor de autenticao
tenta autenticar o usurio (pedindo seu login e senha) e obtm dele uma deciso de
autorizao.

Invs de solicitar a autorizao diretamente ao usurio, o cliente direcionao para a pgina de


autenticao do olx.com.br que, apsautenticarousuriocomseuloginesenha,redirecionao
usuriodevoltaaoclientejuntocomocdigodeautorizao.

Este cdigo dever ser utilizado logo em seguida para solicitar a chave de acesso que, caso
seja aceita pelo usurio, permitir o cliente a acessar suas informaes atravs da API
olx.com.br.Ocdigodeautenticaotemporrioenopodeserreutilizado.

2.1.1.

AURLusadaparaautenticarumusurioser
https://auth.olx.com.br/oauth

Os parmetros HTTP "GET" suportados pelo servidor de autenticao do olx.com.br para


aplicaesWebso:

Parmetro Valores Descrio

response_type code Determinaqueovaloresperadopela


(obrigatrio) requisioserumcdigodeautorizao.

(obrigatrio)
client_id Aidentificaodocliente Identificaoclientequeestenviandoa
quefoifornecidapelo requisio.Ovalordoparmetrotemqueser
olx.com.bratravsdo idnticoaovalorfornecidopeloolx.com.br
registrodaaplicao. duranteoregistrodaaplicao.

redirect_uri Ovalordoparmetrotem Determinaparaqualservidorarespostada


(obrigatriosemltiplos queseridnticoaumdos requisioserenviada.
URIderedirecionamento URIcadastradosno
foramcadastradosno registrodaaplicaono
registronaaplicao) olx.com.br.

(obrigatrio)
scope Conjuntodepermisses IdentificaotipodeacessoaAPIolx.com.br
queaaplicaosolicita, queaaplicaoestrequisitando.Osvalores
separadasporespao, passadosnesteparmetroseroosmesmos

Estemanualpropriedadeda OLX enopermitidoaoportadordessedocumentoreproduzir,transformar,modificar,desmontar,


realizarengenhariainversa,distribuir,alugar,fornecer,colocardisposiodopblico,atravsdequalquermodalidadede
comunicaopblica,qualquerdoselementosreferidosnopresentemanual.
noimportaaordemdos apresentadosaousurionateladesolicitao
valores.Vertpico depermisso.
Permisses .

state Qualquervalor. Fornecequalquervalorquepodesertila


aplicaoaoreceberarespostaderequisio.

Um exemplo de URL apresentado abaixo com espaos e quebras de linha para maior
legibilidade.

https://auth.olx.com.br/oauth?scope=basic_user_info&state=/profile&redirect_uri=https:
//yourserver.com/code&response_type=code&client_id=
1055d3e698d289f2af8663725127bd4b

2.1.1.1. Permisses

Ao solicitar a chave de acesso o cliente devesolicitarpermisses atravsdoparmetro .


scope
Essassolicitaesseroenviadasaousurioparaqueelepossapermitirounooacesso.

O valor parmetro s cope expressado como uma lista de valores ( case sensitive
) separados
porespaos,noimportandoaordem.

O servidor de autorizao do olx.com.br pode ignorar parcial ou totalmente as permisses


solicitadas pelo cliente de acordo comaspolticas doservidordeautenticaoouporinstruo
dousurio.

Segueabaixoalistadospossveisvaloresdepermissoquepodemsersolicitadasaousurio:

Valor Descrio

basic_user_inf Permiteacessoasinformaesbsicasdousurio.Ex:nomecompletoeemail.
o

autoupload Permite acesso ao sistema de autouploads (Envio de anncios de forma


automtica)

2.1.2. Resposta da requisio

A resposta ser enviada para o


redirect_uri, conforme especificado na URL da requisio.
Se o usurio aprovar o acesso, a resposta conter um cdigo de autorizao e o parmetro
state (se includo na requisio). Se o usurio no aprovar, a resposta retornar uma
mensagemdeerro.Todasasrespostassoretornadasaoservidorwebpor querystring .

Estemanualpropriedadeda OLX enopermitidoaoportadordessedocumentoreproduzir,transformar,modificar,desmontar,


realizarengenhariainversa,distribuir,alugar,fornecer,colocardisposiodopblico,atravsdequalquermodalidadede
comunicaopblica,qualquerdoselementosreferidosnopresentemanual.
2.1.2.1. Confirmao da autorizao
Se o usurio conceder a permisso solicitada o servidor de autenticao gera um cdigo de
autorizao e enviao para o cliente atravs dos seguintes parmetros na URI de
redirecionamento:

Parmetro Valores Descrio

(obrigatrio)
code Cdigodeautorizao Cdigodeautorizaoutilizadoparasolicitar
geradopeloservidorde permissodeacessoarecursosdeumusurio.
autenticao. Expira10minutosapstersidogeradoenopode
serreutilizado.

(obrigatrio
state Mesmovalorenviadopelo Fornecequalquervalorquepodesertilaaplicao
seestevepresente clientenarequisio. aoreceberarespostaderequisio.
narequisio)

Exemploderespostadeconfirmao:

https://yourserver.com/code?state=/profile&code=4gP7q7W91aoMsCeLvIaQm6bTrgtp7

2.1.2.2. Erros de autenticao

Se a requisio falhar devido a uma URI de redirecionamento invlida ou noenviadaouseo


identificador do cliente (
client_id ) invlido ou no enviado o servidor de autenticaonoir
redirecionarousurioparaoURIderedirecionamento.

Se o usurio negar acesso as permisses solicitadas ou se a requisio falhar por outros


motivos o servidor de autenticao informa ao cliente qual foi o erro atravs de parmetros
enviadosnaURIderedirecionamento.

Caso a URI passada seja diferente de uma das registradas no olx.com.br, o servidor de
autenticaorespondercomumHTTP400( BadRequest) .

Segue abaixo a lista dos parmetros para erros de autenticao retornados pelo servidor de
autenticao:

Parmetro Valores Descrio

(obrigatrio)
error invalid_request Arequisiotemparmetroobrigatriofaltando,
incluiumparmetroinvlidoouestmal

Estemanualpropriedadeda OLX enopermitidoaoportadordessedocumentoreproduzir,transformar,modificar,desmontar,


realizarengenhariainversa,distribuir,alugar,fornecer,colocardisposiodopblico,atravsdequalquermodalidadede
comunicaopblica,qualquerdoselementosreferidosnopresentemanual.
formatadaporalgumoutromotivo.

unauthorized_client Oclientenoestautorizadoarequisitarum
cdigodeautorizaousandoestemtodo.

access_denied Ousurioouservidordeautenticaonegoua
requisio.

unsupported_response_type Oservidordeautenticaonosuportaobter
umcdigodeautorizaoutilizandoeste
mtodo.

invalid_scope Apermissosolicitadainvlida,desconhecida
oumalformatada.

temporarily_unavailable Nomomentooservidordeautenticaoest
indisponvelparareceberrequisiesdevidoa
umamanutenoousobrecargatemporria.

server_error Oservidordeautenticaoencontrouuma
condioinesperadaqueimpossibilitoua
finalizaodarequisio.

state (obrigatrio Mesmovalorenviadopelo Fornecequalquervalorquepodesertila


se esteve presente clientenarequisio. aplicaoaoreceberarespostaderequisio.
narequisio)

Exemploderespostadeerro:

https://yourserver.com/code?error=access_denied&state=/profile

Estemanualpropriedadeda OLX enopermitidoaoportadordessedocumentoreproduzir,transformar,modificar,desmontar,


realizarengenhariainversa,distribuir,alugar,fornecer,colocardisposiodopblico,atravsdequalquermodalidadede
comunicaopblica,qualquerdoselementosreferidosnopresentemanual.
2.2. Chave de acesso

Chaves de acesso so credenciais usadas para acessar recursos protegidosdeumusurio.


uma string que representa uma autorizao emitida ao cliente. Esta chave representa
permissesespecficas,concedidaspelousurioeemitidapeloservidordeautorizao.

2.2.1. Requisio da chave de acesso

AURLusadaparasolicitarachavedeacessoser
https://auth.olx.com.br/oauth/token

Aps receber o cdigo de autorizao, o cliente poder trocalo por uma chave de acesso
atravs de uma nova requisio. Esta requisio dever ser um post HTTPS e conter os
seguintesparmetros:

Parmetro Valores Descrio


code(obrigatrio) Ocdigodeautorizao Cdigodeautorizaoutilizadoparasolicitar
retornadonarequisio permissodeacessoarecursosdeum
anterior. usurio.Expira10minutosapstersido
geradoenopodeserreutilizado.

client_id(obrigatrio) Aidentificaodocliente Identificaoclientequeestenviandoa
quefoifornecidapelo requisio.Ovalordoparmetrotemqueser
olx.com.bratravsdo idnticoaovalorfornecidopeloolx.com.br
registrodaaplicao. duranteoregistrodaaplicao.
client_secret Achavedesegurana Achavedeseguranadoclienteobtidano
(obrigatrio) enviadapeloolx.com.br registrodaaplicaonoolx.com.br.
duranteoregistroda
aplicao.
(obrigatrio
redirect_uri Mesmovalorenviado Determinaparaqualservidorarespostada
seenviadonarequisiodo atravsdoparmetro requisioserenviada.
cdigodeautorizao) redirect_uri na
requisiodocdigode
autorizao.
(obrigatrio)
grant_type authorization_code Identificaaformacomooclienteobteve
autorizaoparasolicitarachavedeacesso.

Segueabaixoumexemploderequisiodechavedeacesso:
POST/oauth/tokenHTTP/1.1
Host:auth.olx.com.br
ContentType:application/xwwwformurlencoded

code=4/P7q7W91aoMsCeLvIaQm6bTrgtp7&
client_id=
1055d3e698d289f2af8663725127bd4b
&
client_secret={sua_chave_de_segurana}&redirect_uri=https://yourserver.com/code&
grant_type=authorization_code

Estemanualpropriedadeda OLX enopermitidoaoportadordessedocumentoreproduzir,transformar,modificar,desmontar,


realizarengenhariainversa,distribuir,alugar,fornecer,colocardisposiodopblico,atravsdequalquermodalidadede
comunicaopblica,qualquerdoselementosreferidosnopresentemanual.

2.2.2. Resposta de requisio

Se a solicitao da chave de acesso for vlidaeautorizada,oservidordeautenticaoretorna


um HTTP 200 (OK) com valor da chave de acesso. Se a solicitao falhar o servidor de
autenticao,retornaumerroconformeseo 2.2.2.2
.

2.2.2.1. Resposta bem sucedida

O servidor de autenticao gera uma chave de acesso e constri a resposta adicionando os


seguintesparmetrosnocorpodarespostaHTTP200( OK ):

Parmetro Valores Descrio


access_toke Achavedeacessoretornadapeloservidorde Achavedeacessoqueserutilizada
n
(obrigatrio) autenticao. parautilizaraAPIolx.com.br.
token_type Bearer Defineotipodechavegerada.
(obrigatrio)

Segue abaixo um exemplo de resposta bem sucedida em formato JSON retornada pelo
servidordeautenticao:

HTTP/1.1200OK
ContentType:application/jsoncharset=UTF8
CacheControl:nostore
Pragma:nocache

{
"access_token":"1/fFAGRNJru1FTz70BzhT3Zg",
"token_type":"
Bearer
"
}

2.2.2.2. Resposta de erro

Bad Request)
O servidor de autenticao retorna um HTTP 400 ( e inclui um dos seguintes
valoresnaresposta:

Parmetro Valores Descrio

error invalid_request Faltadeparmetroobrigatrionarequisio,incluium


(obrigatrio) parmetronosuportado,incluiumparmetro
repetido,incluirmltiplascredenciaisoumalformato
poralgumoutromotivo.

Estemanualpropriedadeda OLX enopermitidoaoportadordessedocumentoreproduzir,transformar,modificar,desmontar,


realizarengenhariainversa,distribuir,alugar,fornecer,colocardisposiodopblico,atravsdequalquermodalidadede
comunicaopblica,qualquerdoselementosreferidosnopresentemanual.
invalid_client Falhanaautorizaodocliente.

invalid_grant Cdigodeautorizaoinvlido,expiradoourevogado,
URInoamesmaqueaURIusadanarequisiode
autorizaooufoiemitidoparaoutrocliente.

unauthorized_client Oclienteautenticadonoestautorizadoautilizar
rant_type
estetipodeautorizao(g ).

unsupported_grant_type Otipodeautorizao( )nosuportado


grant_type
peloservidor.

invalid_scope Asolicitaodepermissoenviadainvlido,
desconhecidaouexcedeaspermissesconcedidas
pelousurio.

Segueabaixoumexemploderespostadeerronarequisiodeumachavedeacesso:

HTTP/1.1400BadRequest
ContentType:application/jsoncharset=UTF8
CacheControl:nostore
Pragma:nocache

{
"error":"invalid_request"
}

Estemanualpropriedadeda OLX enopermitidoaoportadordessedocumentoreproduzir,transformar,modificar,desmontar,


realizarengenhariainversa,distribuir,alugar,fornecer,colocardisposiodopblico,atravsdequalquermodalidadede
comunicaopblica,qualquerdoselementosreferidosnopresentemanual.
3. API olx.com.br

Depois que a aplicao obtiver uma chave de acesso poder ento utilizar a API olx.com.br
paraacessarrecursosprivadosdeumdeterminadousurio.

3.1 Acesso a API

O cliente acessa os recursos protegidos do usurio apresentando a chave de acesso a API


olx.com.br. O servidor valida a chave de acesso e garante que as permissesconcedidasso
suficientesparaacessarorecursosolicitado.

Segue abaixo um exemplo decomoutilizaraAPIolx.com.brpara obterasinformaesbsicas


deumusurio:

POST/oauth_api/basic_user_infoHTTPS/1.1
Host:
apps
.olx.com.br
UserAgent:Mozilla/5.0
ContentType:application/jsoncharset=UTF8
{
"access_token":"
387266f574068c83f74942fe255e82261708f960
"
}

Ouutilizandoumaaplicaoporlinhadecomandocomo,porexemplo,oCURL:

curlXPOSThttps://apps.olx.com.br/oauth_api/basic_user_infodata
'{"access_token":"387266f574068c83f74942fe255e82261708f960"}'H'UserAgent:
Mozilla/5.0'

3.2 Referncia

AversoatualdaAPIOLXforneceacessoaosseguintesrecursos:

Recurso Descrio

basic_user_info Retornaumalistacomasinformaesbsicasdousurio.

autoupload Sistemadeenviodeannciosdeformaautomtica

3.2.1 basic_user_info

Estemanualpropriedadeda OLX enopermitidoaoportadordessedocumentoreproduzir,transformar,modificar,desmontar,


realizarengenhariainversa,distribuir,alugar,fornecer,colocardisposiodopblico,atravsdequalquermodalidadede
comunicaopblica,qualquerdoselementosreferidosnopresentemanual.
Retornaumalistacomasinformaesbsicasdousurio.

Acesso

POST/oauth_api/basic_user_infoHTTPS/1.1
Host:
apps
.olx.com.br

Permisses

Qualquerchavedeacessocomapermisso
basic_user_info.

Campos

Nome Descrio Tipo

user_name Nomecompletodousurio. string

user_email Emaildousurio. string

Chamada

POST/oauth_api/basic_user_infoHTTPS/1.1
Host:
apps
.olx.com.br
ContentType:application/jsoncharset=UTF8
{
"access_token":"1/fFAGRNJru1FTz70BzhT3Zg"
}

Retorno

{
"user_name":"JosdaSilva",
"user_email":"
jose.silva@sample.com
"
}

3.2.2 autoupload

Sistemadeenviodeannciosdeformaautomtica.

Paramaisinformaes,consultaromanualdeAutouploaddoolx.com.br

Estemanualpropriedadeda OLX enopermitidoaoportadordessedocumentoreproduzir,transformar,modificar,desmontar,


realizarengenhariainversa,distribuir,alugar,fornecer,colocardisposiodopblico,atravsdequalquermodalidadede
comunicaopblica,qualquerdoselementosreferidosnopresentemanual.
4. Exemplo de utilizao
Aseguir,umexemploemPHPdecomoutilizarnossosistemadeOAuth:
oauth.php

<?php
#antesdeusarestescript,vocdeveregistrarsuaaplicaonaOLX
/*
*
* @client_id tokenfornecidopeloOLXquerepresentasuaaplicao
* @client_secrettokenfornecidopeloOLXquegaranteascredenciaisdasua
aplicao
*
*/
#utilizarseuclient_ideclient_secretfornecidopeloOLX
$client_id ='52e213308e9d882584498ed90074bba58250c54e'
$client_secret='db016607c4395f05df1eeb1f18e93ae2'

$response_type='code'
$scope ='basic_user_info'
$redirect_uri ='http://127.0.0.1/oauth.php'
$state ='bla'
$grant_type ='authorization_code'

$auth_host ='dev04c6.srv.office:22406'
$apps_host ='dev04c6.srv.office:22406'
$url =
"https://{$auth_host}/oauth?client_id={$client_id}&response_type={$response_type}&scope={$sc
ope}&redirect_uri={$redirect_uri}&state={$state}"
?>

<!RequisiodocdigodeautenticaoComoexplicadonaseo2.1.1doManualdoOAuth
>
<!Ousuriodeveclicarnolinkparainiciaro'oauthlogin'>
<ahref="<?phpecho$url?>">Fazerloginnoolx.com.br</a><br><br>
<!umavezclicado,ousuriodeverseautenticarnoOLXeautorizarasuaaplicaoa
acessarseusdados>

<?php
#issosdeveocorrerapsorecebimentodo'code'noredirectdooauth
if(isset($_GET['code'])){
$code=$_GET['code']

#dadosnecessriosparaarequisiodotokendeacesso

Estemanualpropriedadeda OLX enopermitidoaoportadordessedocumentoreproduzir,transformar,modificar,desmontar,


realizarengenhariainversa,distribuir,alugar,fornecer,colocardisposiodopblico,atravsdequalquermodalidadede
comunicaopblica,qualquerdoselementosreferidosnopresentemanual.
$fields=array(
'code' =>$code,
'client_id' =>$client_id,
'client_secret' =>$client_secret,
'redirect_uri'=>$redirect_uri,
'grant_type' =>$grant_type
)

#RequisiodachavedeacessoComoexplicadonaseo2.2.1doManualdo
OAuth
#parautilizaromtodo'http_post_fields',instalaropacote:pecl_http
$response =http_post_fields("https://{$auth_host}/oauth/token",
$fields)

#separaoheaderdobodydopacotehttp
$res =preg_split("#\n\\s*?\n#",$response,2)
$data =json_decode($res[1])
echo"access_token:{$data>access_token}<br/>"

#salvaraccess_token
#
#Oaccess_tokendevesersalvoparaevitar
#anecessidadedefazernovamenteohandshakedoOAuth
//$generic_database>saveAccessToken($data>access_token)//comandode
exemplo

$request_data =array('access_token'=>$data>access_token)

#AcessoAPIComoexplicadonaseo3.1doManualdoOAuth
#nesteexemplo,estamosacessandooresourcebasic_user_info
#quesimplesmenteretornainformaesbsicasdousurio
#parautilizaromtodo'http_post_data',instalaropacote:pecl_http
$response =
http_post_data("https://{$apps_host}/oauth_api/basic_user_info",
json_encode($request_data))

#separaoheaderdobodydopacotehttp
$res =preg_split("#\n\\s*?\n#",$response,2)
echo"basic_user_info:{$res[1]}"

}
?>

5. Referncias

[RFC6749]TheOAuth2.0AuthorizationFramework[http://tools.ietf.org/html/rfc6749
]
UsingOAuto2.0forWebServerApplications
[
https://developers.google.com/accounts/docs/OAuth2WebServer?hl=ptBR ]

Estemanualpropriedadeda OLX enopermitidoaoportadordessedocumentoreproduzir,transformar,modificar,desmontar,


realizarengenhariainversa,distribuir,alugar,fornecer,colocardisposiodopblico,atravsdequalquermodalidadede
comunicaopblica,qualquerdoselementosreferidosnopresentemanual.

Estemanualpropriedadeda OLX enopermitidoaoportadordessedocumentoreproduzir,transformar,modificar,desmontar,


realizarengenhariainversa,distribuir,alugar,fornecer,colocardisposiodopblico,atravsdequalquermodalidadede
comunicaopblica,qualquerdoselementosreferidosnopresentemanual.

Vous aimerez peut-être aussi