Como executar uma requisição via webservice Rest consumindo serviço do Fluig com autenticação OAuth 1.0?

Estou desenvolvendo uma rotina ADVPL para o Protheus 12.1.25 consumir um serviço REST no Fluig.O ambiente Fluig está disponível e já consigo executar o request, consumindo um metodo GET através do POSTMAN e também pelo SOAPUI.Porém, quando escrevo a rotina ADVPL, não estou conseguindo, por estar falhando a autenticação.O Fluig me forneceu as seguintes informações para realizar o consumo do webserviceObservação( os conteúdos abaixo foram alterados, são apenas um exemplo, portanto não vão funcionar se tentarem acessar)URL: https://nomedocliente.fluig.cloudtotvs.com.br/ecm-forms/api/v2/cardindex/6/cardsMetódo: GET

A) Parâmetrosoauth_signature: a72c17bb269520f8b1b82887239f&2dcf5fcc-9b34-43-9f66-f9d498f96755a676-8601-4e4c-a521-0c49c28e88b9oauth_signature_method: PLAINTEXToauth_timestamp: 1425187401oauth_token: 05999a6f-acab-4adc-b7a8-17a92342e6fcoauth_version: 1.0

B) AutenticaçãoTipo: OAuth 1.0Signature Method: PLAINTEXTConsumer Key: 191925a3355f6a7266a4575d723ddf8cConsumer Secret: a72c17b20f8b1b8b2695e84f2887239fAccess Token: 0599966f-adcb-4cda-b765-17392342e6fcToken Secret: 2dcf5fcc-9b34-43db-9f66-f9da98f901ef6a55a616-8c01-4e4c-a521-0c49c28e88b9

Montei uma rotina em ADVPL passando no Header os parâmetros do item (A) acima.Minha dúvida é : como faço a passagem dos parametros no "HttpQuote" do item (B) - Autenticação ?

Exemplo da rotina construida:

cMethod := 'GET' cServer := 'https://nomedocliente.fluig.cloudtotvs.com.br' cURi := '/ecm-forms/api/v2/cardindex/6/cards' cGetParms := "" aHeadStr := {} cHeadRet := "" cPostParms := "" cGetParms := "" nTimeout := 5 AAdd(aHeadStr, 'oauth_signature:a72c17bb269520f8b1b82887239f&2dcf5fcc-9b34-43-9f66-f9d498f96755a676-8601-4e4c-a521-0c49c28e88b9') AAdd(aHeadStr, 'oauth_signature_method:PLAINTEXT') AAdd(aHeadStr, 'oauth_timestamp:1425187401') AAdd(aHeadStr, 'oauth_token:05999a6f-acab-4adc-b7a8-17a92342e6fc') AAdd(aHeadStr, 'oauth_version:1.0') jReturn := HttpQuote(cServer+cUri, cMethod, cGetParms, cPostParms, nTimeOut, aHeadStr, @cHeadRet)

Após a execução, retorna: JRETURN(C) : { "code": "FDNUnauthenticatedAccessDeniedException", "message": "Unauthorized access.", "detailedMessage": "It is necessary to log on", "helpUrl": null, "details": null }

Certamente porque falta realizar a autenticação, mas como se faz isso para o tipo "oAuth 1.0"?

compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags webservices oauth rest ou faça a sua própria pergunta.