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.
This page was translated by the Cloud Translation API.
Switch to English

এপিআই লেখার উদাহরণ

থার্মোস্ট্যাট

কাঠামো এবং ডিভাইসগুলিতে পরিবর্তনগুলি শুনতে নেস্ট এপিআই ব্যবহার করুন, যাতে আপনি বাড়ির মালিকরা দূরে থাকাকালীন শক্তি সংরক্ষণের পদক্ষেপ নিতে পারেন, তাদেরকে অবহিত করুন যে কিছু ভুল আছে (উদাহরণস্বরূপ, গ্যারেজের দরজা খোলা আছে), বা বৈশিষ্ট্যগুলি সক্রিয় করার জন্য হোম আরো আরামদায়ক এবং স্বাগত জানাই।

এই গাইডটিতে আপনি কীভাবে নীড় ডিভাইস এবং কাঠামোগুলিতে ডেটা লিখতে PUT কমান্ডটি ব্যবহার করবেন তা শিখবেন। কীভাবে পঠন কল করবেন তা শিখতে, এপিআই পড়ুন উদাহরণ দেখুন

এই কোডগুলির নমুনাগুলি পরীক্ষা করে দেখুন এবং নেস্ট লার্নিং থার্মোস্ট্যাট এবং নেস্ট ক্যামে ডেটা লিখতে শিখুন।

পূর্বশর্ত

API কল করার আগে, প্রাপ্ত একটি অ্যাক্সেস, টোকেন বর্ণনা অনুযায়ী OAuth এর 2.0 প্রমাণীকরণ করতে এবং অনুমোদনের জন্য নমুনা কোড

REST কল কল সম্পর্কে write

REST কলগুলির জন্য, ডেটা লিখতে PUT বা প্যাচ ব্যবহার করুন।

বহনকারী প্রমাণীকরণ

আমরা OAuth স্ট্যান্ডার্ডের সাথে সম্মতি দেওয়ার প্রস্তাব দিই, যা অ্যাক্সেস টোকন প্রেরণ করতে "Bearer" প্রমাণীকরণ ব্যবহার করে বাড়তি সুরক্ষা সরবরাহ করে। URL- এ ক্লায়েন্ট শংসাপত্র সহ কলগুলি সুপারিশ করা হয় না।

"Content-Type" শিরোনাম সার্ভারকে JSON ব্যবহারের নির্দেশ দেয়।

"Authorization" শিরোনাম এপিআই অ্যাক্সেস সরবরাহ করে।

উদাহরণ

নিম্নলিখিত উদাহরণগুলিতে, আপনার নির্দিষ্ট অ্যাক্সেস টোকেন, যেমন "c.twC2q ..." দিয়ে YOUR_TOKEN_HERE প্রতিস্থাপন করুন।

একটি কাঠামোর জন্য দূরে রাষ্ট্র সেট করুন

কাঠামোর দূরে অবস্থাকে "বাড়ি" এ পরিবর্তন করতে, এই ফর্ম্যাটটি ব্যবহার করে away ক্ষেত্রটি লিখুন: "{"away": "home"}" , যেখানে "দূরে" ক্ষেত্রের নাম এবং "বাড়ি" হ'ল নতুন রাষ্ট্র

কোনও কাঠামোতে লিখতে, আমরা ইউআরএল রুট পথে /structures অবজেক্ট এবং structure_id যুক্ত করব। নোট করুন যে স্ট্রিংগুলি "উদ্ধৃতি চিহ্ন" দিয়ে ফর্ম্যাট করা হয়েছে।

curl --location-trusted -X PUT \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_TOKEN_HERE" \
  -d '{"away": "home"}' \
  "https://developer-api.nest.com/structures/structure_id"

একটি তাপস্থাপকের উপর তাপমাত্রার স্কেল (সি / এফ) পরিবর্তন করুন

এই উদাহরণে, আমরা তাপমাত্রা স্কেলকে ডিগ্রি ফারেনহাইট প্রদর্শন করতে বাধ্য করব। আপনি যখন আপনার পণ্য তৈরি করছেন, আপনি প্রথমে তাপমাত্রার স্কেলটি পড়তেন এবং তারপরে সিদ্ধান্ত নেন যে আপনি কোনও লিখিত কল দিয়ে এটি পরিবর্তন করতে চান কিনা।

কল করার জন্য, ক্ষেত্রটি এবং মানটি আপনি আপডেট করতে চান তা উল্লেখ করুন: "{"temperature_scale": "F"}" , এবং /devices/thermostats এবং থার্মোস্ট্যাট device_id অন্তর্ভুক্ত করার জন্য রুট পাথটি পরিবর্তন করুন।

কার্ল
curl --location-trusted -X PUT \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_TOKEN_HERE" \
  -d '{"temperature_scale": "F"}' \
  "https://developer-api.nest.com/devices/thermostats/device_id"
যাওয়া
package main

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

const token = "YOUR_TOKEN_HERE" // Update with your token

func main() {

    url := "https://developer-api.nest.com/devices/thermostats/device_id"

    payload := strings.NewReader("{\"temperature_scale\": \"F\"}")

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

    req.Header.Add(
        "Authorization",
        fmt.Sprintf("Bearer %s", token),
    )

    customClient := http.Client{
        CheckRedirect: func(redirRequest *http.Request, via []*http.Request) error {
            redirRequest.Header = req.Header
            if len(via) >= 10 {
                return errors.New("stopped after 10 redirects")
            }
            return nil
        },
    }


    response, _ := customClient.Do(req)

    if response.StatusCode != 200 {
        panic(fmt.Sprintf(
            "Expected a 200 status code; got a %d",
            response.StatusCode,
        ))
    }

    defer response.Body.Close()
    body, _ := ioutil.ReadAll(response.Body)
    fmt.Println(response)
    fmt.Println(string(body))

}
নোড.জেএস
"use strict"

const request = require('request');

const url = "https://developer-api.nest.com";

/* Update with your token and thermostat device ID below */
var path = "/devices/thermostats/device_id";
var token = "YOUR_TOKEN_HERE";

var options = {
    "method": "PUT",
    "url": url + path,
    "body": JSON.stringify({"temperature_scale": "F"}),
    "headers": {
        "Authorization": "Bearer " + token,
        "Content-Type": "application/json"
    },
    "followRedirect": true,
    "removeRefererHeader": false
};

request(options, function(err, resp, data) {
    if (resp.statusCode == 307) { // indicates a redirect is needed
        options.url = resp.headers.location;
        request(options, function(err, resp, data) {
            console.log('response code: ' + resp.statusCode);
            if (err) console.log('Error: ' + err.message);
            console.log("data: " + data);
        });
    }
});

Node.js কোড উদাহরণস্বরূপ ব্যবহার করার জন্য, অনুরোধ মডিউল (ইনস্টল https://www.npmjs.com/package/request )।

npm install request
পাইথন 2
import hashlib
import json
import os
import requests

url = "https://developer-api.nest.com/devices/thermostats/device_id"

token = "YOUR_TOKEN_HERE" # Update with your token

payload = "{\"temperature_scale\": \"F\"}"

headers = {'Authorization': 'Bearer {0}'.format(token), 'Content-Type': 'application/json'}

response = requests.put(url, headers=headers, data=payload, allow_redirects=False)
if response.status_code == 307: # indicates a redirect is needed
    response = requests.put(response.headers['Location'], headers=headers, data=payload, allow_redirects=False)

print(response.text)
পাইথন ঘ
import http.client
from urllib.parse import urlparse

token = "YOUR_TOKEN_HERE" # Update with your token

payload = "{\"temperature_scale\": \"F\"}"

url = "/devices/thermostats/device_id"

conn = http.client.HTTPSConnection("developer-api.nest.com")
headers = {'authorization': "Bearer {0}".format(token)}
conn.request("PUT", url, payload, headers)
response = conn.getresponse()

if response.status == 307: # indicates a redirect is needed
    redirectLocation = urlparse(response.getheader("location"))
    conn = http.client.HTTPSConnection(redirectLocation.netloc)
    conn.request("PUT", url, payload, headers)
    response = conn.getresponse()
    if response.status != 200:
        raise Exception("Response failed: ", response.reason)

data = response.read()
print(data.decode("utf-8"))
জাভা
import java.io.IOException;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.MediaType;
import okhttp3.RequestBody;

public class NestWrite {

    public Request makeRequest(String url, String value) {
        MediaType mediaType = MediaType.parse("application/octet-stream");
        RequestBody body = RequestBody.create(mediaType, "{\"temperature_scale\": \"F\"}\"");
        String auth = "Bearer YOUR_TOKEN_HERE"; // Update with your token
        Request request = new Request.Builder()
        .url(url)
        .put(body)
        .addHeader("authorization", auth)
        .build();
        return request;
    }

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

        String url = "https://developer-api.nest.com/devices/thermostats/device_id";
        String value = "{\"away\": \"home\"}";
        Request request = postman.makeRequest(url, value);
        Response response = client.newCall(request).execute();
        //System.out.println(response.toString());

        // Use the new URL in case of temporary redirect
        if(response.isRedirect()){
            String newUrl = response.header("Location");
            request = postman.makeRequest(newUrl, value);
            response = client.newCall(request).execute();
        }
        System.out.println(response.body().string());
    }
}

জাভা কোড উদাহরণ ব্যবহার করতে:

১. http://square.github.io/okhttp/ এ সর্বশেষতম ওখট্টপ এবং ওকিও জার ফাইলগুলি ডাউনলোড করুন। অতিরিক্তভাবে, যদি আপনার ওখটিপিটির সংস্করণ নির্ভর করে তবে কোটলিন স্ট্ডলিব ফাইলটি https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-stdlib এ ডাউনলোড করুন।

আপনার কোডটি তৈরি করুন।

3. নিম্নলিখিত ক্লাস-পাথ সেটিংস সহ প্রোগ্রামটি সংকলন এবং চালনা করুন।

নীচে জাভাক এবং জাভা কমান্ডগুলিতে আপনার গ্রন্থাগারের সংস্করণ নম্বরগুলি প্রতিস্থাপন করুন:
javac -cp .:okhttp-<ver>.jar:okio-<ver>.jar NestWrite.java
java -cp .:okhttp-<ver>.jar:okio-<ver>.jar:kotlin-stdlib-<ver>.jar NestWrite

উদাহরণস্বরূপ, যদি আপনি নিম্নলিখিত সংস্করণ 3.11.0, 2.1.0, এবং 1.3.0 থাকে, আপনার কমান্ড ভালো দেখাবে:
javac -cp .:okhttp-3.11.0.jar:okio-2.1.0.jar NestWrite.java
java -cp .:okhttp-3.11.0.jar:okio-2.1.0.jar:kotlin-stdlib-1.3.0.jar NestWrite

তাপস্থাপকের লক্ষ্যমাত্রার তাপমাত্রা পরিবর্তন করুন

আপনি তাপমাত্রার স্কেল ডিগ্রি ফারেনহাইটে পরিবর্তন করার পরে, আপনি লক্ষ্যমাত্রার তাপমাত্রা সেট করতে পারেন। পূর্ববর্তী উদাহরণগুলির মতো একই প্রক্রিয়াটি ব্যবহার করুন এবং আপডেট করার জন্য ক্ষেত্র / মান নির্দিষ্ট করুন এবং মূলের পথটি পরিবর্তন করুন। মনে রাখবেন যে "strings" এবং numbers আলাদাভাবে ফর্ম্যাট করা আছে।

curl --location-trusted -X PUT \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_TOKEN_HERE" \
  -d '{"target_temperature_f": 70}' \
  "https://developer-api.nest.com/devices/thermostats/device_id"

একটি তাপস্থাপকের উপর একটি কাস্টমাইজড লেবেল সেট করুন

এটিকে কাস্টমাইজড ডাক নাম দেওয়ার জন্য আপনি থার্মোস্ট্যাট লেবেলটিও পরিবর্তন করতে পারেন। নামে একটি একক উক্তি অন্তর্ভুক্ত করতে আপনি ইউনিকোড অক্ষরটি ব্যবহার করতে পারেন 00 u0027।

curl --location-trusted -X PUT \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_TOKEN_HERE" \
  -d '{"label": "Kate\u0027s Room"}' \
  "https://developer-api.nest.com/devices/thermostats/device_id"

একটি ক্যামেরায় স্ট্রিমিং স্থিতি সেট করুন

এই উদাহরণে, আপনি যে ডিভাইসটি সংশোধন করতে চান, /devices/cameras/ device_id করতে আমরা মূল পথ পরিবর্তন করেছি এবং ক্যামেরা স্ট্রিমিং /devices/cameras/ device_id ON

curl --location-trusted -X PUT \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_TOKEN_HERE" \
  -d '{"is_streaming": true}' \
  "https://developer-api.nest.com/devices/cameras/device_id"

এপিআই পরীক্ষার জন্য পোস্টম্যান ব্যবহার করা

উপরের কার্ল কলগুলি সহজে পোস্টম্যানে প্রতিলিপি করা যায়। নীচের পদক্ষেপগুলি উপরের কার্ল উদাহরণের মতো তাপস্থাপকের লক্ষ্যমাত্রার তাপমাত্রা পরিবর্তন করে।

PUT শিরোনাম লিখতে
লিখুন শরীর

আরও উন্নয়নের জন্য একটি প্রাথমিক পয়েন্ট হিসাবে কলকে বিভিন্ন ভাষায় অনুবাদ করার জন্য পোস্টম্যানের কোড লিঙ্কটি ব্যবহার করুন।