Ir para conteúdo
  • Cadastre-se

dev botao

Como fazer uma requisição POST com conteúdo no Body em Delphi usando os componentes REST pra API Google Calendar


  • Este tópico foi criado há 1290 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Bom dia pessoal do Projetoacbr, estou com uma dúvida e um erro na minha implementação, descrevendo aqui eu quero fazer uma request cm método POST cm um conteúdo em JSON para a aí do Google Calendar e com isso, o calendário é inserido. Eu verifiquei e existe um tópico que fala sobre isso aqui mas não consegui resolver meu problema com ele por isso to criando outro.

Meu código atual é assim

procedure TOAuth2TesterFrm.incluir_btnClick(Sender: TObject);
var
json,token: String;
begin
token:=AccessTokenEdt.Text;
json:=(
'{"kind": "calendar#calendarListEntry", "etag": "0", "id": "[email protected]", ' +
'"summary": "Calendario Outro", "description": "Descrição do evento", '   +
'{"date": "2020 August 11", "dateTime": "2020-08-11T17:35:36+03:00"}'+
'"timeZone": "Brasília-DF", "colorId": "15", "backgroundColor": "#9fc6e7", "foregroundColor": "#000000", ' +
'"selected": true, "accessRole": "owner", "primary": true, '+
 '"defaultReminders": [{"method": "popup", "minutes": 30}, {"method": "email", "minutes": 10}], '  +
'"notificationSettings": {"notifications": [{"method": "email", "type": "eventCreation"}, ' +
'{"method": "email", "type": "eventChange"}, {"method": "email", "type": "eventCancellation"}, ' +
'{"method": "email", "type": "eventResponse"}]}}');
try
    client.ResetToDefaults;
    request.ResetToDefaults;
    response.ResetToDefaults;
    client.BaseURL:='https://www.googleapis.com/calendar/v3/';
    response.ContentType := 'application/json';
    request.Method := TRESTRequestMethod.rmPOST;
    request.Body.ClearBody;
    //client.AcceptEncoding:='UTF-8';
    client.ContentType:='text/html';
    request.Resource := 'calendars';
   // client.Params.AddHeader('Authorization','Bearer'+token);
    request.Params.ParameterByName('Authorization').Options := [poDoNotEncode];
    request.AddBody(json);
    request.Execute;
    ShowMessage(request.Response.StatusCode.ToString);
finally

end;
  end;

Muito obrigado desde já e espero que alguém consiga ajudar um dev junior no primeiro emprego, nesse momento a inserção não se completa e quando debugo e chega na linha request.params.parameterbyname da um erro de Access Violation. Antes de eu colocar essa linha, que retirei do outro tópico que citei acima, minha request retornava código 401 que é não autorizado, o token está sendo enviado também no header como eu já tinha pesquisado em outros lugares, mas pode ser que eu esteja errando em algum lugar e não estou vendo. 

Link para o comentário
Compartilhar em outros sites

  • Consultores
2 horas atrás, Iago Petini Morelli disse:

na linha request.params.parameterbyname da um erro de Access Violation

Isso acontece porque a linha anterior que adiciona o parâmetro está comentada. Etnão o parâmetro não existe e você está tentando acessar ele assim mesmo.

2 horas atrás, Iago Petini Morelli disse:

   // client.Params.AddHeader('Authorization','Bearer'+token);

 

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Consultores

Iago, me parece que nos exemplos do Delphi há alguns relacionados a isso. Especificamente usando o oauth2, tem um do Google Tasks.

Dá uma olhada:

http://docwiki.embarcadero.com/RADStudio/Rio/en/REST_Client_Library#Examples

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1290 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...