Notice: We're retiring Works with Nest. See the home page for more information.
Google is committed to advancing racial equity for Black communities. See how.
דף זה תורגם על ידי Cloud Translation API.
Switch to English

קוד לדוגמא לאישור

השתמש בדוגמאות הקוד בדף זה כדי לקבל אסימון גישה. לאחר מכן תוכל להשתמש באסימון הגישה כדי לבצע שיחות API לקריאה וכתיבה למבנים ומכשירים.

לפני שתתחיל, ראה אימות באמצעות OAuth 2.0 .

בכרטיסייה סקירה כללית של לקוח OAuth שלך:

  • זיהוי לקוח הוא ה- CLIENT_ID שלך
  • סוד הלקוח הוא CLIENT_SECRET שלך

לפני כל שיחת POST, קבל קוד הרשאה חדש:

  1. העתק וטען מחדש את כתובת האתר שלך להרשאה
  2. לחץ על [קבל] והעתק את קוד ההרשאה החדש
  3. שנה את ערך פרמטר code של POST כך שיתאים לקוד ההרשאה החדש
פרטי OAuth

בדגימות קוד, הקפד להחליף AUTH_CODE , CLIENT_ID , ו CLIENT_SECRET .

דוגמאות לבקשת אסימון גישה

השתמש בדוגמאות אלה כדי לקבל אסימון גישה.

סִלְסוּל
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"
פייתון 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)
פייתון 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();
ללכת
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());
    }

}

כדי להשתמש בדוגמה של קוד Java:

1. הורד את קבצי ה- okhttp וה- okio Jar האחרונים באתר http://square.github.io/okhttp/ . בנוסף, הורד את קובץ ה- Kotlin stdlib בכתובת https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-stdlib אם הגירסה שלך ל- okhttp תלויה בו.

2. בנה את הקוד שלך.

3. ערוך והפעל את התוכנית עם הגדרות הנתיב הכיתתי שלהלן.

החלף את מספרי גרסאות הספריה שלך בפקודות javac ו- java למטה:
javac -cp .:okhttp- <ver> .jar:okio- <ver> .jar Sample.java
java -cp .:okhttp- <ver> .jar:okio- <ver> .jar:kotlin-stdlib- <ver> .jar Sample

לדוגמה, אם ברשותך הגרסאות הבאות 3.11.0, 2.1.0 ו- 1.3.0, הפקודות שלך ייראו כך:
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

תגובת אסימון גישה

עבור כל מדגם, התגובה כוללת את אסימון הגישה.

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