Google is committed to advancing racial equity for Black communities. See how.

এপিআই পড়ুন উদাহরণ

দূরে

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

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

পূর্বশর্ত

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

প্রায় REST কল কল

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

নীচে ব্যবহারের ক্ষেত্রে যেমন রিস্ট রিড কলগুলি সীমিত পরিস্থিতিগুলি কার্যকর are

  • অ্যাড-হক এক-অফ কল
  • প্রুফ অফ কনসেপ্ট ল্যাব
  • সমস্যা সমাধান
  • অ্যাপ্লিকেশনগুলি যা প্রতি মিনিটে প্রায় পোল করে
  • রিফ্রেশ বোতাম বাস্তবায়ন

অবিরত রিয়েল-টাইম বা স্ট্রিমিং দৃশ্যের জন্য REST রিড কলগুলি কার্যকর নয়।

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

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

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

"Authorization" হেডার API অ্যাক্সেস প্রদান করে।

উদাহরণ

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

স্ট্রাকচার এবং ডিভাইসগুলি পড়ুন

সমস্ত কাঠামো এবং ডিভাইস ডেটা (বেস স্তর) পড়তে, মূল-স্তরের URL ব্যবহার করুন। আরও দানাদার প্রতিক্রিয়াগুলির জন্য, URL হিসাবে প্রয়োজন হিসাবে সংশোধন করুন।

কার্ল
curl -v --location-trusted \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_TOKEN_HERE" \
  -X GET "https://developer-api.nest.com/"
কার্ল মাল্টিপ্লেক্স
curl -v --location-trusted \
  -H "Accept: text/event-stream" \
  -H "Authorization: Bearer LIST_OF_ACCESS_TOKENS" \
  -X GET "https://developer-api.nest.com/multiplex"
যাওয়া
package main

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

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

func main() {
    url := "https://developer-api.nest.com/"
    req, _ := http.NewRequest(http.MethodGet, url, nil)

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

    customClient := http.Client {
        CheckRedirect: func(redirRequest *http.Request, via []*http.Request) error {
            // Go's http.DefaultClient does not forward headers when a redirect 3xx
            // response is received. Thus, the header (which in this case contains the
            // Authorization token) needs to be passed forward to the redirect
            // destinations.
            redirRequest.Header = req.Header

            // Go's http.DefaultClient allows 10 redirects before returning an
            // an error. We have mimicked this default behavior.
            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(string(body))

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

var request = require('request');

var token = "YOUR_TOKEN_HERE"; // Update with your token

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

var options = {
    "method": "GET",
    "path": "/",
    "headers": {
       "Authorization": "Bearer " + token
    },
    "followRedirect": true
};

var req = request(url, options, function(err, resp, data) {
    console.log('response code: ' + resp.statusCode);
    if (err) {
        console.log('Error: ' + err.message);
    }
    console.log("data: " + data);
});

req.end();

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/"

token = "YOUR_TOKEN_HERE" # Update with your token

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

response = requests.get(url, headers=headers, allow_redirects=False)
if response.status_code == 307:
    response = requests.get(response.headers['Location'], headers=headers, allow_redirects=False)

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

token = "YOUR_TOKEN_HERE" # Update with your token

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

if response.status == 307:
    redirectLocation = urlparse(response.getheader("location"))
    conn = http.client.HTTPSConnection(redirectLocation.netloc)
    conn.request("GET", "/", headers=headers)
    response = conn.getresponse()
    if response.status != 200:
        raise Exception("Redirect with non 200 response")

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

public class ReadNest {

    public static void main(String[] args) throws IOException {
        String auth = "Bearer YOUR_TOKEN_HERE"; // Update with your token

        OkHttpClient client = new OkHttpClient.Builder()
        .authenticator(new Authenticator() {
          @Override public Request authenticate(Route route, Response response) throws IOException {
            return response.request().newBuilder()
                .header("Authorization", auth)
                .build();
          }
        })
        .followRedirects(true)
        .followSslRedirects(true)
        .build();

        Request request = new Request.Builder()
        .url("https://developer-api.nest.com")
        .get()
        .addHeader("content-type", "application/json; charset=UTF-8")
        .addHeader("authorization", auth)
        .build();

        try {
            System.out.println("Begin request:  ");
            Response response = client.newCall(request).execute();
            System.out.println(response.body().string());
            System.out.println("End request");
            System.out.println();
            Thread.sleep(2 * 1000);
        } catch (InterruptedException e) {
                e.printStackTrace();
        }
   }
}

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

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

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

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

সাবস্টিটিউট javac আপনার গ্রন্থাগার সংস্করণ সংখ্যা এবং নিচের জাভা কমান্ড:
javac -cp .:okhttp-<ver>.jar:okio-<ver>.jar ReadNest.java
java -cp .:okhttp-<ver>.jar:okio-<ver>.jar:kotlin-stdlib-<ver>.jar ReadNest

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

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

উপরের কার্ল কলটি সহজে পোস্টম্যানে প্রতিলিপি করা যায়।

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

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