:デルファイ、WINHTTP、Googleのログイン、フュージョンテーブル
Delphi, WebBrowser, Google Login, FusionTable
しかし、WinHTTPの持つテストもTWebBrowserベースのテストとして失敗した...
そして、これあなたが望むように1つの質問です。:-)
私は1つのテーブルを今公開していますが、私たちが非フリーアカウントを購入すると私的なものに変更されます。
私は簡単なWinHTTPテストを作成しましたが、これも失敗しました。
私はログインできますが、 "Auth"タグがありますが、次の "private"リクエストは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エラーが出ます...
このエラーの原因はわかりません。
a。無料アカウントにプライベートにアクセスするための十分な権利がありません
b。ヘッダーを間違って設定しました
c。私はcsSourceを間違って設定しました(私は "MyCompanyName-Test-1.0"を設定しました)
d。私が何を知っていない他の事...
ログインとデータへのアクセス方法を教えてもらえますか?