En Google, luchamos por la equidad racial de la comunidad negra. Más información

Código de muestra para autorización

Utilice los ejemplos de código de esta página para obtener un token de acceso. Luego, puede usar el token de acceso para realizar llamadas a la API para leer y escribir en estructuras y dispositivos.

Antes de comenzar, consulte Autenticación con OAuth 2.0 .

En la pestaña Descripción general de su cliente OAuth:

  • El ID de cliente es su CLIENT_ID
  • El secreto del cliente es su CLIENT_SECRET

Antes de cada llamada POST, obtenga un nuevo código de autorización:

  1. Copie y vuelva a cargar su URL de autorización
  2. Haga clic en [ACEPTAR] y copie el nuevo código de autorización.
  3. Cambiar el valor de la POSTAL code parámetro para que coincida con el nuevo código de autorización
Detalles de OAuth

En los ejemplos de código, asegúrese de reemplazar AUTH_CODE , CLIENT_ID y CLIENT_SECRET .

Ejemplos de solicitud de token de acceso

Utilice estos ejemplos para obtener un token de acceso.

Rizo
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();
Ir
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 el ejemplo de código Java:

1. Descarga la última archivos Jar Okio okhttp y al http://square.github.io/okhttp/ . Además, la descarga de archivos Kotlin stdlib en https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-stdlib si su versión de okhttp depende de ello.

2. Construya su código.

3. Compile y ejecute el programa con la siguiente configuración de ruta de clases.

Sustituir los números de versión de la biblioteca en los comandos javac y java siguientes:
javac -cp .:okhttp-<ver>.jar:okio-<ver>.jar Sample.java
java -cp .:okhttp-<ver>.jar:okio-<ver>.jar:kotlin-stdlib-<ver>.jar Sample

Por ejemplo, si usted tiene las siguientes versiones 3.11.0, 2.1.0, y 1.3.0, los comandos se vería así:
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

Respuesta del token de acceso

Para cada muestra, la respuesta incluye el token de acceso.

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