GARANTIR DESCONTO

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:

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

Flex Ltda

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?
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar