Как скачать файл cvs с авторизацией Google в Google Insights - нужно использовать классы Zend, а не другие способы php (zend_gbase и т.д ..) - PullRequest
2 голосов
/ 15 июня 2011

Как скачать файл cvs с авторизацией Google в сервисе трендов Google - нужно использовать классы Zend Framework, а не другие способы php .

Спасибо,

Yosef

1 Ответ

1 голос
/ 04 июля 2011

Это может быть то, что вам нужно. Вам необходимо ввести имя пользователя и пароль Google в переменных $email и $passwd и настроить автозагрузчик или указать классы ZF.

Ссылки: Zend_Gdata_ClientLogin и ClientLogin

// setup the autoloader first or require used classes
// using the example code in the example to get auth tokens
try {
    $client = Zend_Gdata_ClientLogin::getHttpClient($email, $passwd, 'xapi', $httpClient);
} catch (Zend_Gdata_App_CaptchaRequiredException $cre) {
    echo 'URL of CAPTCHA image: ' . $cre->getCaptchaUrl() . "\n";
    echo 'Token ID: ' . $cre->getCaptchaToken() . "\n";
} catch (Zend_Gdata_App_AuthException $ae) {
    echo 'Problem authenticating: ' . $ae->exception() . "\n";
}

// extract authentication tokens from response body
$ck_count = preg_match_all('/^(.+)=(.+)$/m', $client->getLastResponse()->getBody(), $cookies);

// build a new http client
$auth = new Zend_Http_Client('http://www.google.com/trends/viz?q=facebook&graph=all_csv&sa=N');

for ($i = 0; $i < $ck_count; $i++) {
    // authenticate it using the provided tokens as cookies
    $auth->setCookie($cookies[1][$i], $cookies[2][$i]);
}
// make the request and dump cvs data
Zend_Debug::dump($auth->request()->getBody());

Вывод данных (для краткости усечен):

facebook, facebook (std error)
1.00, 0%


Week, facebook, facebook (std error)
Jan 4 2004, 0, >10%
Jan 11 2004, 0, >10%
Jan 18 2004, 0, >10%
Jan 25 2004, 0, >10%
Feb 1 2004, 0, >10%
Feb 8 2004, 0, >10%
Feb 15 2004, 0, >10%
Feb 22 2004, 0, >10%
Feb 29 2004, 0, >10%
...