Usa las muestras de código en esta página para obtener un token de acceso. Luego, puedes usar el token de acceso para realizar llamadas a las API de lectura y escritura en estructuras y dispositivos.
Antes de comenzar, consulta Autentica con OAuth 2.0.
En la pestaña Descripción general de tu cliente de OAuth, sigue estos pasos:
- 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:
- Copiar y volver a cargar la URL de autorización
- Haga clic en [ACEPTAR] y copie el nuevo código de autorización.
- Cambia el valor del parámetro
code
de POST&s3; para que coincida con el nuevo código de autorización

En las muestras de código, asegúrate de reemplazar AUTH_CODE
, CLIENT_ID
y CLIENT_SECRET
.
Ejemplos de solicitudes de token de acceso
Usa estos ejemplos para obtener un token de acceso.
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"
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)
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"))
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();
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)) }
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, haz lo siguiente:
1. Descarga los archivos okhttp y okio Jar más recientes en http://square.github.io/okhttp/. Además, descarga el archivo stdlib de Kotlin en https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-stdlib si tu versión de okhttp depende de él.
2. Construye tu código.
3. Compila y ejecuta el programa con la siguiente configuración de ruta de clase.
Sustituye los números de versión de tu biblioteca en los comandos javac y java que se indican a continuación:
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 tienes las siguientes versiones 3.11.0, 2.1.0 y 1.3.0, tus comandos se verán de la siguiente manera:
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