Карты Google через HTTPS

Я пытаюсь загрузить диаграммы в виде изображений на защищенном сайте. Пример изображения Google Chart через https:

http://www.google.com/chart?cht=lc&chs=200x125&chd=s:helloWorld

Проблема в том, что хотя вы можете загрузить подобное изображение, нажав на ссылку, вы не можете включить его как изображение на свою страницу. Он просто не будет загружаться.

Любая идея о том, как обойти это? Или решение, обычно использующее PHP?


person swt83    schedule 20.03.2010    source источник
comment
На самом деле, если я нажму на эту ссылку, Google вернет страницу «Неверный запрос». Но работает, если я захожу по http (и если у вас получилось, очистите кеш и попробуйте еще раз!)   -  person MikeyB    schedule 20.03.2010
comment
@MikeyB и @swt83, вопрос отредактирован, чтобы исправить ссылку.   -  person David says reinstate Monica    schedule 20.03.2010


Ответы (3)


Google не поддерживает Charts через HTTPS...

У меня такая же проблема.

http://groups.google.com/group/google-chart-api/browse_thread/thread/95c463d88cf3cfe4

Однако вы можете использовать PHP или .net для создания прокси-страницы для фильтрации вашей HTTP-ссылки Google через HTTPS-соединение для решения такой проблемы.

Вот простой PHP-прокси, который я использовал...

<?php
    // PHP Proxy
    // Loads a XML from any location. Used with Flash/Flex apps to bypass security restrictions
    // Author: Paulo Fierro
    // January 29, 2006
    // usage: proxy.php?url=http://mysite.com/myxml.xml

    $session = curl_init($_GET['url']);                    // Open the Curl session
    curl_setopt($session, CURLOPT_HEADER, false);          // Don't return HTTP headers
    curl_setopt($session, CURLOPT_RETURNTRANSFER, true);   // Do return the contents of the call
    $xml = curl_exec($session);                            // Make the call
    header("Content-Type: text/xml");                  // Set the content type appropriately
    echo $xml;        // Spit out the xml
    curl_close($session); // And close the session
?>
person Justin Jenkins    schedule 20.03.2010
comment
Google Charts теперь доступны по HTTPS: http://stackoverflow.com/questions/2482168/google-charts-over-https/4739924#4739924 - person Ivan Nevostruev; 29.06.2011

Похоже, Google наконец-то обновил свой API, чтобы разрешить HTTPS. Все, что вам нужно сделать, это переключить имя хоста на chart.googleapis.com, чтобы базовый URL-адрес выглядел примерно так: https://chart.googleapis.com/chart и все работает нормально. Наслаждаться!

person Jeremy Glover    schedule 19.01.2011

Похоже, Google блокирует HTTPS-запросы для диаграмм с установленным заголовком Referrer:.

[tla ~]$ curl 'http://www.google.com/chart?cht=lc&chs=200x125&chd=s:helloWorld' 2>/dev/null | file -
/dev/stdin: PNG image, 200 x 125, 8-bit/color RGB, non-interlaced
[tla ~]$ curl 'https://www.google.com/chart?cht=lc&chs=200x125&chd=s:helloWorld' 2>/dev/null | file -
/dev/stdin: PNG image, 200 x 125, 8-bit/color RGB, non-interlaced
[tla ~]$ curl -H 'Referer: http://stackoverflow.com' 'http://www.google.com/chart?cht=lc&chs=200x125&chd=s:helloWorld' 2>/dev/null | file -
/dev/stdin: PNG image, 200 x 125, 8-bit/color RGB, non-interlaced
[tla ~]$ curl -H 'Referer: http://stackoverflow.com' 'https://www.google.com/chart?cht=lc&chs=200x125&chd=s:helloWorld' 2>/dev/null | file -
/dev/stdin: ASCII HTML document text, with very long lines
person MikeyB    schedule 20.03.2010
comment
До меня дошло, что я люблю использовать эмпирические методы ;) - person MikeyB; 20.03.2010