私はwebから見つけた次のコードで自分のアプリケーションでgoogleにログインできます。それは応答として認証コードを返しています。 Googleのヘルプによると、この認証コードは将来のPOST/GETリクエストの送信に使用する必要があります。C#を使用してGoogle Spreadsheetsをダウンロードするには?
Googleにログインしているときに普通に行うことができる http://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=DOCUMENT_ID&fmcmd=4からExcel形式のスプレッドシートをダウンロードする必要があります。
C#で認証コードを使用して上記ファイルのリクエストを送信するにはどうすればよいですか? 私はGoogle Data APIを使用しているスレッドを見ました。私はそれを利用したくありません。
以下は、ログインするためのコードサンプルです。正常に動作します。私はHTMLとしてストリームを保存して、それがためにプロンプトされたブラウザで開く場合
<html><head><title>Redirecting</title>
<meta http-equiv="refresh" content="0; url='http://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=p_zC6U3bOsLTuXeUdmQI1RA&fmcmd=4&pli=1&auth=DQAAAIoAAAAfbQUnX8EaZzQcBSIRJSeU4xtFF6ITt9069JLJyJsoqFGMzSE8HrvArHmGPoA-Wf2CbhnDQv_bGKXye2_qyL6EAhTEdOs6Alz-VMeYFsqdGlYjxospBokgCO1958kSVuVFRe9UuKkfV2f_6ZX8SROMkMNdMz3MW8Wh3UNmflIX4E92CpnMleSjCRVpH9x5gSQ&gausr=username%40gmail.com'"></head>
<body bgcolor="#ffffff" text="#000000" link="#0000cc" vlink="#551a8b" alink="#ff0000"><script type="text/javascript" language="javascript">
location.replace("http://spreadsheets.google.com/feeds/download/spreadsheets/Export?key\x3dp_zC6U3bOsLTuXeUdmQI1RA\x26fmcmd\x3d4\x26pli\x3d1\x26auth\x3dDQAAAIoAAAAfbQUnX8EaZzQcBSIRJSeU4xtFF6ITt9069JLJyJsoqFGMzSE8HrvArHmGPoA-Wf2CbhnDQv_bGKXye2_qyL6EAhTEdOs6Alz-VMeYFsqdGlYjxospBokgCO1958kSVuVFRe9UuKkfV2f_6ZX8SROMkMNdMz3MW8Wh3UNmflIX4E92CpnMleSjCRVpH9x5gSQ\x26gausr\x3dusername%40gmail.com")
</script></body></html>
:
string str = "/accounts/ClientLogin HTTP/1.0 Content-type: application/x-www-form-urlencoded accountType=GOOGLE&[email protected]&Passwd=password&service=cl&source=Gulp-CalGulp-1.05";
string uri = "https://www.google.com/accounts/ClientLogin";
HttpWebRequest request = (HttpWebRequest) WebRequest.Create(uri);
request.KeepAlive = false;
request.ProtocolVersion = HttpVersion.Version10;
request.Method = "POST";
byte[] postBytes = Encoding.ASCII.GetBytes(str);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = postBytes.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(postBytes, 0, postBytes.Length);
requestStream.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StringBuilder sb = new StringBuilder();
string webresponse = new StreamReader(response.GetResponseStream()).ReadToEnd();
int AuthIndex = webresponse.IndexOf("Auth=");
sb.Append(webresponse);
sb.Append("\n");
sb.Append(response.StatusCode);
richTextBox1.Text = sb.ToString();
string authCode = webresponse.Substring(AuthIndex + 5, webresponse.Length - (AuthIndex + 5));
EDITED: これは私がmiffTheFoxは答えた内容に応じなかった場合の応答として取得されるものです私が直接ダウンロードする必要があるExcelファイルをダウンロードします。
あなた自身の質問の記事:http://stackoverflow.com/questions/943270/getting-google-spreadsheets-as-excel-using-c 新しい質問をするのではなく、質問を編集することをお勧めします。 –
これはあなたの問題を解決する関連する質問です:http://stackoverflow.com/questions/725627/accessing-google-spreadsheets-with-c-using-google-data-api –
私はそれをより明確にするGoogle Data API Plsはもう一方の質問を破棄します。 –