Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2017, 16:30   #1
grigandal1580
Пользователь
 
Регистрация: 05.01.2017
Сообщений: 15
По умолчанию REST обновить AccessToken google api

С REST library знаком поверхностно

в OAuth2Authenticator-е получил Access и Refresh token-ы

пытаюсь обновить AccesToken так

Код:
procedure TForm1.Button4Click(Sender: TObject);
var
LToken :string;
begin
RESTClient1.BaseURL:='https://www.googleapis.com/oauth2/v4/token';
try
  RESTRequest1.Method := TRESTRequestMethod.rmPOST;
 
 
  RESTRequest1.AddAuthParameter('grant_type', 'refresh_token', TRESTRequestParameterKind.pkURLSEGMENT);
  RESTRequest1.AddAuthParameter('refresh_token', OAuth2Authenticator1.RefreshToken, TRESTRequestParameterKind.pkURLSEGMENT);
  RESTRequest1.AddAuthParameter('client_id',OAuth2Authenticator1.ClientID,TRESTRequestParameterKind.pkURLSEGMENT);
  RESTRequest1.AddAuthParameter('client_secret',OAuth2Authenticator1.ClientSecret,TRESTRequestParameterKind.pkURLSEGMENT);
 
  RESTRequest1.Execute;
 
 
  if RESTRequest1.Response.GetSimpleValue('access_token', LToken) then
  begin
    ShowMessage(LToken);
    OAuth2Authenticator1.AccessToken := LToken;
  end;
 
  if RESTRequest1.Response.GetSimpleValue('refresh_token', LToken) then
  begin
    OAuth2Authenticator1.RefreshToken := LToken;
  end;
 
finally
  RESTClient1.DisposeOf;
end;
end;

получаю исключение

Код:
ETHTTPProtocolException with message 'HTTP/1.1 404 not found'
Как правильно составить данный запрос?
grigandal1580 вне форума Ответить с цитированием
Старый 14.11.2017, 11:12   #2
grigandal1580
Пользователь
 
Регистрация: 05.01.2017
Сообщений: 15
По умолчанию

тема актуальна
grigandal1580 вне форума Ответить с цитированием
Старый 14.11.2017, 13:41   #3
grigandal1580
Пользователь
 
Регистрация: 05.01.2017
Сообщений: 15
По умолчанию

Получилось пока только с помощью IdHTTP

Код:
procedure TForm1.Button4Click(Sender: TObject);
var
  LToken, string;
  response: String;
   id: String;
   date:string;
   pos1: Integer;
   Info: TStringList;
begin


response := '';
     Info := TStringList.Create;
     Info.Add('grant_type=refresh_token');
     Info.Add('refresh_token='+OAuth2Authenticator1.RefreshToken);
     Info.Add('client_id=' + OAuth2Authenticator1.ClientID);
     Info.Add('client_secret=' + OAuth2Authenticator1.ClientSecret);
     response := idhttp1.Post('https://www.googleapis.com/oauth2/v4/token', Info);
     memo2.Lines.Add(response);
end;
grigandal1580 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
консультация python unitest google api facebook api muove Фриланс 0 11.05.2017 14:25
Разработка REST API - на чем? supervine Общие вопросы Web 4 04.05.2017 22:22
Лабораторная по веб-технологиям(Angular, REST API с oAuth2) ZoxWatt Фриланс 0 26.05.2016 13:28
Отправка сообщенмя через API VK и Rest Client Cruzel C++ Builder 1 29.09.2014 18:42