OK, zmieniło się od kilku dni.
Teraz musisz przekazać auth, a nie SID.
kod tak jest teraz:
class Program
{
static void Main(string[] args)
{
using (var client = new WebClient())
{
// TODO: put your real email and password in the request string
var response = client.DownloadString("https://www.google.com/accounts/ClientLogin?accountType=GOOGLE&[email protected]&Passwd=secret&service=trendspro&source=test-test-v1");
// The Auth line
var auth = response.Split('\n')[2];
client.Headers.Add("Authorization", "GoogleLogin " + auth);
byte[] csv = client.DownloadData("http://www.google.com/insights/search/overviewReport?q=test&cmpt=q&content=1&export=2");
// TODO: do something with the downloaded csv file:
Console.WriteLine(Encoding.UTF8.GetString(csv));
File.WriteAllBytes("report.csv", csv);
}
}
}
A teraz znowu pracować dla mnie.
Idealny! Ale aby uzyskać ciąg znaków, należy użyć Encoding.Unicode.GetString (csv); zamiast Encoding.UTF8.GetString (csv) – Dragouf
Witam, od dzisiaj wygląda na to, że już nie działa. Metoda Clientlogin nie zwraca wystarczających informacji o różnych plikach cookie, które można utworzyć (w porównaniu do ServiceLogin), a otrzymujemy komunikat "Osiągnąłeś swój limit przydziału. Spróbuj ponownie później." – Dragouf
Dość pewne, że to już nie działa, ponieważ Google go wycofał. –