Fórum TRESTClient+TRESTRequest+TRESTResponse #563625
05/10/2016
0
Olá Caros colegas Delphinianos,
Estou abrindo este post para desvendar algo que pra mim é bastante novo porém lendo parece não ser o bixo de 7 cabeças,
mas ainda assim estou encontrando bastante dificuldade em implementar...
Quero acessar uma API de Serviços existente na web para integrar o cadastro dos produtos de um cliente com o portal que
se chama canaldapeca.com.br
Para usar essa API que usa, segundo o que fala a documentação, Basic Auth Base64, Basic Auth utilizando o clientId e
clientSecret com permissão para acessar os serviços do Canal da Peça.
Chamando essa API ela irá retornar um JSON contendo access_token para acessar os outros serviços.
Estou usando os componentes TRESTClient+TRESTRequest+TRESTResponse+THTTPBasicAuthenticator e não obtive exito,
implementei da seguinte maneira:
Só que está dando um Internal Error 500.
Alguém conhece de acesso a API para me dar uma força nessa?
Estou abrindo este post para desvendar algo que pra mim é bastante novo porém lendo parece não ser o bixo de 7 cabeças,
mas ainda assim estou encontrando bastante dificuldade em implementar...
Quero acessar uma API de Serviços existente na web para integrar o cadastro dos produtos de um cliente com o portal que
se chama canaldapeca.com.br
Para usar essa API que usa, segundo o que fala a documentação, Basic Auth Base64, Basic Auth utilizando o clientId e
clientSecret com permissão para acessar os serviços do Canal da Peça.
Chamando essa API ela irá retornar um JSON contendo access_token para acessar os outros serviços.
Estou usando os componentes TRESTClient+TRESTRequest+TRESTResponse+THTTPBasicAuthenticator e não obtive exito,
implementei da seguinte maneira:
var
lParams: TCollectionItem;
lJSONObject: TJSONObject;
begin
lJSONObject := TJSONObject.Create;
try
ResetRESTComponentsToDefaults;
RESTClient.BaseURL := 'http://ws.hml.autorei.net/';
RESTClient.Authenticator := HTTPBasicAuthenticator1;
RESTClient.ContentType := 'application/x-www-form-urlencoded';
RESTRequest.Method := TRESTRequestMethod.rmPOST;
RESTRequest.Resource := 'oauth/token';
lJSONObject.AddPair('scope', 'product:show stock:save stock:update warehouse:list warehouse:save warehouse:show '+
'warehouse:update partnerOrder:show partnerOrder:list partnerOrder:update');
lJSONObject.AddPair('grant_type', 'client_credentials');
RESTRequest.Params.Clear;
RESTRequest.Params.AddHeader('authorization', 'Basic '+Edt_Base64.Text);
RESTRequest.AddBody(lJSONObject);
HTTPBasicAuthenticator1.Username := 'orbid-hml';
HTTPBasicAuthenticator1.Password := EmptyStr;
RESTRequest.Execute;
finally
FreeAndNil(lJSONObject);
end;
end;
Só que está dando um Internal Error 500.
Alguém conhece de acesso a API para me dar uma força nessa?
Flex Ltda
Curtir tópico
+ 0
Responder
Posts
05/10/2016
Flex Ltda
[url:descricao=Código Fonte]http://www.flexvendasweb.com.br/CanalDaPeca.zip[/url]http://www.flexvendasweb.com.br/CanalDaPeca.zip
Responder
Gostei + 0
05/10/2016
Flex Ltda
Obrigado mas ainda não deu certo!
a senha é a mesma que está nos campos, porém você antes de chamar a API precisa criptografar usando o encode aí sim você poderá chamar a funcção.
Vi na internet alguns vídeos e algum material que pudesse me ajudar, encontrei alguns muito bacanas que me deram algunas idéias para mais tarde como integrar com twitter ou facebook mas agora de momento o que preciso mesmo é acessar essa API
para quem tem o DELPHJI XE6 para cima já existe um programa no menu do delphi chamado RESTDebugger começei a usar ele e estou bem perto de conseguir a solução.
Ele só não está gerando corretamente o BODY do request. Está colocando alguns tags a mais que segundo o suporte da API são desnecessários e por este motivo está retornando o código 500.
Alguma Idéia?
a senha é a mesma que está nos campos, porém você antes de chamar a API precisa criptografar usando o encode aí sim você poderá chamar a funcção.
Vi na internet alguns vídeos e algum material que pudesse me ajudar, encontrei alguns muito bacanas que me deram algunas idéias para mais tarde como integrar com twitter ou facebook mas agora de momento o que preciso mesmo é acessar essa API
para quem tem o DELPHJI XE6 para cima já existe um programa no menu do delphi chamado RESTDebugger começei a usar ele e estou bem perto de conseguir a solução.
Ele só não está gerando corretamente o BODY do request. Está colocando alguns tags a mais que segundo o suporte da API são desnecessários e por este motivo está retornando o código 500.
Alguma Idéia?
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)