O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Código de amostra para autorização

Use os exemplos de código nesta página para obter um token de acesso. Você pode então usar o token de acesso para fazer chamadas de API para ler e gravar em estruturas e dispositivos.

Antes de começar, consulte Autenticação com OAuth 2.0 .

Na guia Visão geral do cliente OAuth:

  • ID do cliente é o seu CLIENT_ID
  • O segredo do cliente é o seu CLIENT_SECRET

Antes de cada chamada POST, obtenha um novo código de autorização:

  1. Copie e recarregue seu URL de autorização
  2. Clique em [ACEITAR] e copie o novo código de autorização
  3. Alterar o valor do da POST code parâmetro para corresponder ao novo código de autorização
Detalhes OAuth

Nas amostras de código, certifique-se de substituir AUTH_CODE , CLIENT_ID e CLIENT_SECRET .

Exemplos de solicitação de token de acesso

Use estes exemplos para obter um token de acesso.

Ondulação
curl -X POST \
  -d "code=AUTH_CODE&client_id=CLIENT_ID&client_secret=CLIENT_SECRET&grant_type=authorization_code" \
  "https://api.home.nest.com/oauth2/access_token"
Python 2
import requests

url = "https://api.home.nest.com/oauth2/access_token"

payload = "code=AUTH_CODE&client_id=CLIENT_ID&client_secret=CLIENT_SECRET&grant_type=authorization_code"

headers = {'content-type': 'application/x-www-form-urlencoded'}

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
Python 3
import http.client

conn = http.client.HTTPSConnection("api.home.nest.com")

payload = "code=AUTH_CODE&client_id=CLIENT_ID&client_secret=CLIENT_SECRET&grant_type=authorization_code"

headers = { 'content-type': "application/x-www-form-urlencoded" }

conn.request("POST", "/oauth2/access_token", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
Node.js
var qs = require("querystring");
var http = require("https");

var options = {
  "method": "POST",
  "hostname": "api.home.nest.com",
  "port": null,
  "path": "/oauth2/access_token",
  "headers": {
    "content-type": "application/x-www-form-urlencoded"
  }
};

var req = http.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function () {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});

req.write(qs.stringify({
  code: 'AUTH_CODE',
  client_id: 'CLIENT_ID',
  client_secret: 'CLIENT_SECRET',
  grant_type: 'authorization_code'
}));

req.end();
Vai
package main

import (
    "fmt"
    "strings"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.home.nest.com/oauth2/access_token"

    payload := strings.NewReader("code=AUTH_CODE&client_id=CLIENT_ID&client_secret=CLIENT_SECRET&grant_type=authorization_code")

    req, _ := http.NewRequest("POST", url, payload)

    req.Header.Add("content-type", "application/x-www-form-urlencoded")

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))
}
Java
import java.io.IOException;
import okhttp3.OkHttpClient;
import okhttp3.FormBody;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.MediaType;
import okhttp3.Response;

public class Sample {

    public static void main(String[] args) throws IOException {
        OkHttpClient client = new OkHttpClient();

        MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
        RequestBody body =
               RequestBody.create(mediaType, "code=AUTH_CODE&client_id=
               CLIENT_ID&client_secret=CLIENT_SECRET
               &grant_type=authorization_code");
        Request request = new Request.Builder()
          .url("https://api.home.nest.com/oauth2/access_token")
          .post(body)
          .build();

        Response response = client.newCall(request).execute();
        System.out.println(response.body().string());
    }

}

Para usar o exemplo de código Java:

1. Faça o download do mais recente okhttp e arquivos JAR Okio em http://square.github.io/okhttp/ . Além disso, baixe o arquivo Kotlin stdlib em https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-stdlib se sua versão do okhttp depende disso.

2. Construa seu código.

3. Compile e execute o programa com as seguintes configurações de caminho de classe.

Substituir seus números de versão de biblioteca nos comandos javac e java abaixo:
javac -cp .:okhttp-<ver>.jar:okio-<ver>.jar Sample.java
java -cp .:okhttp-<ver>.jar:okio-<ver>.jar:kotlin-stdlib-<ver>.jar Sample

Por exemplo, se você tem as seguintes versões 3.11.0, 2.1.0 e 1.3.0, os comandos ficaria assim:
javac -cp .:okhttp-3.11.0.jar:okio-2.1.0.jar Sample.java
java -cp .:okhttp-3.11.0.jar:okio-2.1.0.jar:kotlin-stdlib-1.3.0.jar Sample

Resposta de token de acesso

Para cada amostra, a resposta inclui o token de acesso.

  "access_token": "c.twC2q...",
  "expires_in": 315360000