- Google закроет Earth API
- Earth Engine User Interface API
- Hello, world!
- Code Editor (JavaScript)
- Mutability
- Code Editor (JavaScript)
- Рекомендации по работе с ключами API
- Что такое ключи API
- Защита ключей API
- Настройка ограничений для ключей API
- Как настроить для ключа API допустимый тип приложений
- Как настроить для ключа допустимые API
- Ключи API: ограничения и рекомендации
- Сайты с Maps JavaScript API, Embed API и Static API
- Приложения и серверы, использующие веб-сервисы
- Приложения для Android
- Приложения для iOS
Google закроет Earth API
Поисковый гигант в официальном блоге Google Geo Developers объявил, что 12 декабря 2015 года поддержка Google Earth API будет прекращена. В отличие от хорошо известных прецедентов закрытия популярных сервисов, таких как Google Reader или Google News, программа Google Earth (и веб-версия и десктопный клиент) останется, а сама причина закрытия имеет технический характер.
В конце сентября прошлого года в Google сообщили о том, что планируют отказаться от дальнейшего использования плагинов NPAPI (Netscape Plug-in API) в браузерах Chrome и Chromium по причине того, что его архитектура была разработана более 15 лет назад и уже не отвечает новым требованиям по безопасности и скорости работы, а мобильные браузеры это API вообще не поддерживают. Тогда же расширения для Chrome, написанные с использованием NPAPI, перестали работать — исключение было сделано только для участников «белого списка», куда включили Silverlight, Unity, Google Earth, Java, Google Talk а также Facebook Video.
Около месяца назад инженеры Chrome окончательно объявили сроки по полному прекращению поддержки NPAPI, включая и фигурантов «белого списка». А поскольку Earth API был как раз основан на возможностях устаревшего интерфейса, то и его поддержка прекратится почти синхронно с отключением NPAPI в Chrome и Chromium.
В качестве альтернативы Google рекомендует разработчикам использовать PPAPI (Pepper API), который, однако, не поддерживается другими браузерами и несовместим с NPAPI, или другие технологии, вроде NativeClient (NaCl).
Earth Engine User Interface API
Earth Engine provides access to client-side user interface (UI) widgets through the ui package. Use the ui package to construct graphical interfaces for your Earth Engine scripts. These interfaces can include simple input widgets like buttons and checkboxes, more complex widgets like charts and maps, panels to control the layout of the UI, and event handlers for interactions between UI widgets. Explore the full functionality of the ui API in the Docs tab on the left side of the Code Editor. The following example uses the ui package to illustrate basic functions for making a widget, defining behavior for when the user clicks the widget, and displaying the widget.
Hello, world!
This example represents a simple UI of a button displayed in the console. Clicking the button results in ‘Hello, world!’ getting printed to the console:
Code Editor (JavaScript)
Observe that first, the button is created with a single argument: its label. Next, the button’s onClick() function is called. The argument to onClick() is another function that will get run whenever the button is clicked. This mechanism of a function to be called (a «callback» function) when an event happens is called an «event handler» and is used widely in the UI library. In this example, when the button is clicked, the function prints ‘Hello, world!’ to the console.
Mutability
Note that unlike objects in the ee.* namespace, objects within the ui.* namespace are mutable. So you don’t need to reassign the object to a variable every time you call an instance function on the object. Simply calling the function will mutate (change) the widget. Appending the following code to the previous example results in registering another callback for the button’s click event:
Code Editor (JavaScript)
Copy this code to the end of the previous example and click Run. Now when you click the button, both messages are printed to the console.
Use the UI pages to learn more about building UIs for your Earth Engine scripts. The Widgets page provides a visual tour and describes basic functionality of the widgets in the ui package. The Panels and Layouts page describes top-level containers and layouts you can use to organize and arrange widgets. The Events page has details on configuring the behavior and interaction of widgets in your UI.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Рекомендации по работе с ключами API
Ключи API необходимы для приложений и проектов, в которых используются API и SDK платформы Google Карт. Ниже рассказывается об использовании и защите ключей API, а также об ограничении их действия.
Что такое ключи API
Ключи API – это учетные данные, которые действуют в пределах проекта и выполняют две задачи:
- Идентификация проекта
Идентификация приложения или проекта, совершающего вызов API или SDK. - Авторизация проекта
Проверка того, есть ли у приложения разрешение вызывать API или SDK и включен ли в проекте API (SDK).
Каждый ключ API связан с определенным проектом. Когда от проекта поступает вызов, ключ API выступает идентификатором. Благодаря этому информация об использовании регистрируется именно для этого проекта, а вызовы от других проектов отклоняются.
Защита ключей API
Обеспечьте защиту ключей API для всех сервисов платформы Google Карт, которые используются в вашем приложении. Для этого ограничьте действие ключей и воспользуйтесь рекомендациями для используемых API платформы Google Карт. Если незащищенные учетные данные окажутся в общем доступе, ими могут воспользоваться посторонние лица, а платить придется вам.
Ниже приведены стратегии защиты ключей API. Рекомендации для отдельных сервисов платформы Google Карт (Maps JavaScript API и т. д.) читайте в разделе Ключи API: ограничения и рекомендации.
Ограничивайте действие ключей API. Лучший способ защитить ключи API – ограничить их действие конкретными IP-адресами, URL перехода или мобильными приложениями, а также использовать каждый ключ только для определенных API. Эти меры помогают избежать серьезных последствий взлома ключа.
Ограничения ключа можно настроить на консоли. Для этого откройте страницу «Учетные данные» и создайте ключ API с нужной конфигурацией или отредактируйте параметры существующего ключа. Подробнее…
Чтобы удалить ключ API, выполните следующие действия:
- Перейдите на панель учетных данных.
- Выберите ключ API.
- Нажмите кнопку Удалить вверху страницы.
- Когда откроется всплывающее окно Удалить учетные данные, нажмите УДАЛИТЬ.
Будьте внимательны при создании новых ключей API. Старые ключи уничтожаются через 24 часа после создания новых. Если для перевода приложений со старых ключей на новые требуется более 24 часов, то экземпляры, в которых не успеет обновиться ссылка на ключ, перестанут работать.
При создании нового ключа API происходит следующее:
- Создается новый ключ.
- Все ограничения старого ключа переносятся в конфигурацию нового.
- Начинается отсчет времени до уничтожения старого ключа. После создания нового ключа старый действует ещё 24 часа.
Следите за отклонениями в использовании API. Если вы заметите признаки несанкционированного использования, смените ключи и сообщите в Google.
Перед сменой старых ключей сохраните настройки ограничений в отдельном файле.
Если в приложении используются Maps Web Service API или Static Web API, вам подойдут следующие методы защиты ключей и приложения.
- Не встраивайте ключи API и секреты для подписания непосредственно в код приложения. Для такой конфиденциальной информации следует использовать переменные среды или файлы, хранящиеся отдельно от основного кода (в другом хранилище). Тогда ваши ключи API и секреты для подписания не попадут в чужие руки, даже если вам нужно будет открыть код приложения другим лицам.
- Не храните ключи API и секреты для подписания в файлах дерева исходного кода приложения. Если вы храните подобную конфиденциальную информацию в файлах, не добавляйте их в дерево исходного кода, иначе эта информация может оказаться в системе управления кодом. Это особенно критично, если система общедоступная, например GitHub.
- Прежде чем открывать код для других разработчиков, проверьте его. В нём не должно быть ключей API, секретов для подписания и прочей конфиденциальной информации.
Если в мобильном приложении используются Web Service API или Static Web API, вам подойдут следующие методы дополнительной защиты ключей и секретов для подписания.
Используйте прокси-сервер. Это сервер-посредник, который обеспечивает безопасное взаимодействие с API платформы Google Карт. Подробнее…
Используйте закрепление ЦС и сертификатов для проверки серверных ресурсов. Закрепление ЦС позволяет удостовериться, что сертификат сервера выдан надежным центром сертификации (ЦС). Это предотвращает атаки посредника, в результате которых ваш ключ API может попасть в чужие руки. А с помощью закрепления сертификатов можно ещё и проверять открытый ключ в сертификате сервера. Закрепление хорошо использовать для мобильных клиентов, которые обмениваются данными непосредственно с серверами Google или с собственным прокси-сервером разработчика.
Настройка ограничений для ключей API
Ключи API – тоже учетные данные, поэтому будьте с ними очень осторожны. Обязательно настройте для них ограничения, чтобы избежать серьезных последствий в случае взлома, и выполняйте рекомендации ниже: они помогут обезопасить ваши ключи API.
Ключи можно ограничивать по приложениям и по API.
Ограничение Допустимый тип приложений позволяет использовать ключи API только для определенных сайтов (IP-адресов, URL) или платформ (Android, iOS). Для каждого ключа можно настроить только одно ограничение из этой категории (см. статью об API Google Карт для разных платформ).
Допустимые API позволяют использовать ключи только для конкретных API или SDK платформы Google Карт. Если настроить для ключа такие ограничения, то запросы на использование выбранных API или SDK будут обрабатываться, а для остальных API и SDK – завершаться ошибкой. Для каждого ключа можно настроить любое количество допустимых API. Но если используется ограничение «Допустимый тип приложений», проверьте, чтобы выбранные API и/или SDK его поддерживали.
Как настроить для ключа API допустимый тип приложений
- Перейдите на панель учетных данных.
- Выберите нужный ключ API. Откроется страница со свойствами ключа API.
- В разделе Ограничения для ключа нажмите Допустимый тип приложений.
Выберите тип ограничения и укажите всю нужную информацию.
Тип ограничения Описание HTTP-источники перехода Запросы принимаются только от указанных сайтов.
Задайте под списком типов сайты-источники. Для указания похожих URL допускается использовать подстановочные знаки. Например, если ввести *.google.com , то приниматься будут запросы от https://developers.google.com и всех остальных сайтов, заканчивающихся на google.com .
Запросы принимаются только от указанных IP-адресов веб-серверов.
Задайте под списком типов один адрес (IPv4, IPv6) или подсеть в формате бесклассовой адресации (например, 192.168.0.0/22). Когда вы закончите, появится поле ввода нового адреса. Так вы сможете добавить все нужные адреса.
Чтобы ключ можно было использовать только с вашим приложением для Android, задайте название пакета и цифровой отпечаток сертификата для подписи SHA-1.
Добавьте под списком типов цифровой отпечаток сертификата SHA-1 и название пакета Android из файла AndroidManifest.xml.
Запросы принимаются только от приложения для iOS с указанным идентификатором пакета.
Выберите под списком типов нужный идентификатор пакета iOS.
- Нажмите Сохранить.
Заданное ограничение будет добавлено в определение ключа API. Если вы не укажете обязательные данные или не нажмете «Сохранить», ограничение не подействует. Подробности читайте в руководстве по получению ключа API для нужного API или SDK.
Как настроить для ключа допустимые API
- Перейдите на панель учетных данных.
- Выберите нужный ключ API.
Откроется страница Добавление ограничений и изменение названия ключа API. - В разделе Допустимые API:
- Нажмите Применить ограничения для ключа.
- В раскрывающемся списке Выберите API укажите нужные API или SDK. Приложение будет использовать ключ API для доступа к ним. Если определенных API или SDK нет в списке, включите их.
- Нажмите Сохранить.
Заданное ограничение будет добавлено в определение ключа API. Если вы не укажете обязательные данные или не нажмете «Сохранить», ограничение не подействует. Подробности читайте в руководстве по получению ключа API для нужного API или SDK.
Ключи API: ограничения и рекомендации
В таблицах ниже приведены ограничения и рекомендации для каждого API, SDK и сервиса платформы Google Карт.
Сайты с Maps JavaScript API, Embed API и Static API
API/SDK/сервис | Допустимый тип приложений1 | Допустимые API1 | Рекомендации |
---|---|---|---|
Maps JavaScript API2 | HTTP-источники перехода | Maps JavaScript API |
|
Сервис Directions, Maps JavaScript API | HTTP-источники перехода | Directions API, Maps JavaScript API |
|
Сервис Distance Matrix, Maps JavaScript API | HTTP-источники перехода | Distance Matrix API, Maps JavaScript API |
|
Сервис Elevation, Maps JavaScript API | HTTP-источники перехода | Elevation API, Maps JavaScript API |
|
Сервис Geocoding, Maps JavaScript API | HTTP-источники перехода | Geocoding API, Maps JavaScript API |
|
Библиотека Places, Maps JavaScript API | HTTP-источники перехода | Places API, Maps JavaScript API |
|
Maps Embed API | HTTP-источники перехода | Maps Embed API |
|
Maps Static API | HTTP-источники перехода | Maps Static API |
|
Street View Static API | HTTP-источники перехода | Street View Static API |
|
Приложения и серверы, использующие веб-сервисы
API/SDK/сервис | Допустимый тип приложений1 | Допустимые API1 | Рекомендации |
---|---|---|---|
Directions API | IP-адреса 4 | Directions API |
|
Distance Matrix API | IP-адреса 4 | Distance Matrix API |
|
Elevation API | IP-адреса 4 | Elevation API |
|
Geocoding API | IP-адреса 4 | Geocoding API |
|
Geolocation API | IP-адреса 4 | Geolocation API |
|
Places API5 | IP-адреса 4 | Places API |
|
Roads API | IP-адреса 4 | Roads API |
|
Time Zone API | IP-адреса 4 | Time Zone API |
|
Приложения для Android
API/SDK/сервис | Допустимый тип приложений1 | Допустимые API1 | Рекомендации |
---|---|---|---|
Maps SDK для Android | Приложения для Android | Maps SDK для Android |
|
Places SDK для Android | Приложения для Android | Places API |
|
Приложения для iOS
API/SDK/сервис | Допустимый тип приложений1 | Допустимые API1 | Рекомендации |
---|---|---|---|
Maps SDK для iOS | Приложения для iOS | Maps SDK для iOS |
|
Places SDK для iOS | Приложения для iOS | Places API |
|
1 Чтобы использовать ключ API с любыми SDK или API платформы Google Карт, не обязательно настраивать для него ограничения. Но мы настоятельно рекомендуем это сделать, особенно если:
- тестовая среда является или будет общедоступной;
- приложение, использующее ключ API, готово для перевода в рабочую среду.
2 Для мобильных приложений рекомендуем использовать нативные пакеты Maps SDK for Android и Maps SDK for iOS.
3 Для Maps Static API и Street View Static API требуется задать не только ключ API, но и цифровую подпись, чтобы можно было превышать квоту в 25 000 загрузок карты в день.
Примечание. Общие секреты для подписания должны иметь не меньший уровень защиты, чем ключи API, использующиеся с Maps Web Service API.
Когда вам требуется динамически подписывать запросы изображений, делайте это на стороне сервера. А если ваши приложения генерируют статические изображения на основе клиентских данных, используйте следующие меры безопасности:
Если вы подписываете запросы, настройте дневную квоту неподписанных запросов.
4 Ограничение по IP-адресам не всегда полезно. Например, его не стоит настраивать для мобильных приложений и облачных сред, работающих на основе динамических IP-адресов. В этих случаях используйте для приложений с Maps Web Service API следующие меры безопасности:
5 Для мобильных приложений рекомендуем использовать нативные пакеты Places SDK for Android и Places SDK for iOS.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.