Это продолжение моего предыдущего вопроса:
Delphi, веб-браузер, Google Login, FusionTable
Но тест с WinHTTP также не прошел как тест на основе TWebBrowser ...
И это один вопрос, как вы пожелаете ...: -)
У меня есть одна таблица NOW PUBLIC, но когда мы купим несвободный аккаунт, он будет изменен на закрытый.
Я создал простой тест WinHTTP, но он также не удался.
Я могу войти, я получил тэг "Auth", но следующий "приватный" запрос возвращает ошибку 401.
procedure TForm1.BitBtn1Click(Sender: TObject);
var
WinHttpReq, temp : variant;
URL, s : String;
params : TStringList;
authtoken, query, posts : string;
begin
URL := 'https://www.google.com/accounts/ClientLogin';
WinHttpReq := CreateOleObject('WinHttp.WinHttpRequest.5.1');
params := TStringList.Create;
try
params.Values['accountType'] := 'GOOGLE';
params.Values['Email'] := csEmail;
params.Values['Passwd'] := csPwd;
params.Values['service'] := 'fusiontables';
params.Values['source'] := csSource;
posts := EncodeParamsToURL(params);
finally
params.Free;
end;
URL := URL + '?' + posts;
WinHttpReq.Open('POST', URL, false);
WinHttpReq.Send();
s := WinHttpReq.ResponseText;
Memo1.Lines.Text := s;
params := TStringList.Create;
try
params.Text := s;
authtoken := params.Values['Auth'];
Edit1.Text := authtoken;
finally
params.Free;
end;
//query := URLEncode('SHOW TABLES');
query := URLEncode('select * from 1236965');
url := 'http://www.google.com/fusiontables/api/query?sql=' + query;
WinHttpReq.Open('POST', URL, false);
WinHttpReq.setRequestHeader('Authorization', 'GoogleLogin auth="' + authToken + '"');
WinHttpReq.Send();
s := WinHttpReq.ResponseText;
Memo1.Lines.Text := s;
end;
Когда я сделал «выбор», я получил строки.
Но когда я хочу увидеть имена таблиц, я получаю ошибку 401 ...
Я не уверен, что является причиной этой ошибки.
а. У бесплатной учетной записи недостаточно прав для доступа к ней в частном порядке
б. Я неправильно установил заголовок
с. Я неправильно установил csSource (я установил «MyCompanyName-Test-1.0»)
д. Другое дело, я не знаю, что ...
Кто-нибудь может мне помочь, как войти в систему и получить доступ к данным?