Para concluir as etapas necessárias para fazer chamadas básicas para a API Street View Publish, siga as etapas deste tutorial.
Como fazer chamadas HTTP
É possível chamar a API Street View Publish usando várias ferramentas, como curl, wget e Postman. Na maioria dos casos, você vai querer usar uma linguagem de programação de sua escolha para criar um aplicativo cliente que usa a API, mas este tutorial orientará você nas noções básicas, orientando você nas comandos individuais.
Também fornecemos algumas bibliotecas de cliente caso você não querem fazer chamadas HTTP diretas.
Pré-requisitos
-
Você precisa de uma Conta do Google para acessar o Console de APIs do Google, solicitar uma chave de API e registrar seu aplicativo.
-
Crie um projeto no Google Developers Console e receba credenciais de autorização para que seu aplicativo possa enviar solicitações de API.
-
Depois de criar o projeto, verifique se a API Street View Publish é um dos serviços registrados para uso pelo aplicativo:
- Acesse o Console de APIs e selecione o projeto que você acabou de registrar.
- Acesse a página de APIs ativadas. Verifique se a API Google Street View está na lista de APIs ativadas. Se não estiver, abra a Biblioteca de APIs e ative-a.
-
Leia o guia de autenticação para saber como implementar a autorização OAuth 2.0.
-
Familiarize-se com os conceitos fundamentais do formato de dados JavaScript Object Notation (JSON). JSON é um formato de dados comum e independente de linguagem que fornece uma representação de texto simples de estruturas de dados arbitrárias. Para mais informações, acesse json.org.
Receber uma chave de API
Para fins de autenticação e cota, você precisará usar a API Google Street View Publish com credenciais geradas a partir do Developers Console.
- Acesse o menu Credenciais no Developers Console.
- Se você já tiver uma chave de API, poderá usar o valor dela. Caso contrário, crie uma nova selecionando Chave de API no menu Novas credenciais.
Adquirir um token de acesso
- Acesse o Google Developers OAuth 2.0 Playground.
- Clique no menu de configurações (ícone de engrenagem no canto superior direito), marque Usar suas próprias credenciais do OAuth e insira
Client ID
eClient secret
nos campos correspondentes e, em seguida, clique em Fechar. - Na Etapa 1: selecionar e autorizar APIs, insira o escopo da API
https://www.googleapis.com/auth/streetviewpublish
No campo Insira seus próprios escopos, clique em Autorizar APIs. Um nova página será aberta para confirmar que você deseja autorizar a API. - Clique em Trocar código de autorização dos tokens. Isso preencherá o campo Token de acesso, que conterá o token de acesso a ser usado na para a próxima etapa. O token de acesso expira em 60 minutos. Selecione a opção atualiza o token automaticamente antes de expirar, o que cria um novo token;
Enviar uma solicitação HTTP
Depois de ter a chave de API e o token de acesso, execute o comando a seguir:
em um shell para realizar uma chamada HTTP para o serviço. No exemplo abaixo,
faça uma chamada para o método /v1/photo:startUpload
.
$ curl --request POST \ --url 'https://streetviewpublish.googleapis.com/v1/photo:startUpload?key=YOUR_API_KEY' \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'Content-Length: 0'
Exemplos de solicitação
Depois que você se sentir confortável em enviar a solicitação HTTP acima, use algumas métodos. Diversas chamadas são exibidas abaixo.
Recebendo uma lista das suas fotos
$ curl --request GET \ --url 'https://streetviewpublish.googleapis.com/v1/photos?key=YOUR_API_KEY' \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN'
Carregando uma foto
$ curl --request GET \ --url 'https://streetviewpublish.googleapis.com/v1/photo/PHOTO_ID?key=YOUR_API_KEY' \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN'
Como fazer upload de uma foto
Criar uma foto requer três chamadas separadas. A primeira chamada retorna um URL de upload, que é usado na segunda chamada para fazer upload dos bytes de foto. Depois do upload dos bytes da foto, a terceira chamada carrega os metadados da foto e retorna o ID com foto.
- Solicitar um URL de upload
$ curl --request POST \ --url 'https://streetviewpublish.googleapis.com/v1/photo:startUpload?key=YOUR_API_KEY' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'Content-Length: 0'
- Fazer upload dos bytes da foto para o URL de upload
$ curl --request POST \ --url 'UPLOAD_URL' \ --upload-file 'PATH_TO_FILE' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
- Fazer upload dos metadados da foto
$ curl --request POST \ --url 'https://streetviewpublish.googleapis.com/v1/photo?key=YOUR_API_KEY' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'Content-Type: application/json' \ --data '{ "uploadReference": { "uploadUrl": "UPLOAD_URL" }, "pose": { "heading": 105.0, "latLngPair": { "latitude": 46.7512623, "longitude": -121.9376983 } }, "captureTime": { "seconds": 1483202694 }, }'
Atualizar uma foto
$ curl --request PUT \ --url 'https://streetviewpublish.googleapis.com/v1/photo/PHOTO_ID?key=YOUR_API_KEY&updateMask=pose.latLngPair' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'Content-Type: application/json' \ --data '{ "pose": { "latLngPair": { "latitude": 46.7512624, "longitude": -121.9376982 } } }'
Atualização em lote de várias fotos
$ curl --request POST \ --url 'https://streetviewpublish.googleapis.com/v1/photos:batchUpdate?key=YOUR_API_KEY' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'Content-Type: application/json' \ --data '{ "updatePhotoRequests": [ { "photo": { "photoId": { "id": "FIRST_PHOTO_ID" }, "pose": { "latLngPair": { "latitude": 37.1701638, "longitude": -122.3624387 } } }, "updateMask": "pose.latLngPair" }, { "photo": { "photoId": { "id": "SECOND_PHOTO_ID" }, "pose": { "latLngPair": { "latitude": 37.1685704, "longitude": -122.3618021 } } }, "updateMask": "pose.latLngPair" } ] }'
Excluir uma foto
$ curl --request DELETE \ --url 'https://streetviewpublish.googleapis.com/v1/photo/PHOTO_ID?key=YOUR_API_KEY' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
O que é updateMask?
updateMask
é uma maneira de manter suas solicitações pequenas se você quiser atualizar parte
da sua foto, e não toda ela. Sem updateMask
, a solicitação atualiza o
a foto inteira. Isso significa que, se você não definir updateMask
e sua solicitação for
sem pose
, o estado pose
da sua foto será apagado. Alguns valores possíveis
para updateMask
são: places, pose.heading, pose.latlngpair, pose.level,
connections
. É possível colocar vários valores separados por vírgulas em updateMask
.