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.