Tüm Ürünler
Search
Belge Merkezi

Alibaba Cloud SDK:SDK Entegrasyonu

Son Güncelleme:Oct 07, 2026

Bir OpenAPI işlemi çağırırken SDK'yı projenize entegre etmenizi öneririz. SDK kullanımı geliştirme sürecini basitleştirir, özelliklerin hızlı entegrasyonunu sağlar ve bakım maliyetlerini etkili bir şekilde azaltır. Bir Alibaba Cloud SDK entegrasyonu üç ana adımdan oluşur: Alibaba Cloud SDK'sını içe aktarma, erişim kimlik bilgilerini ayarlama ve SDK'yı kullanma. Bu konuda SDK entegrasyon süreci ayrıntılı olarak açıklanmaktadır.

Ortam gereksinimleri

Node.js >= 8.x

SDK'yı İçe Aktarma

  1. SDK Merkezi adresine gidin ve çağırmak istediğiniz API'nin ürününü seçin; örneğin Short Message Service (SMS).

  2. Installation sayfasında ve All Languages seçeneğini TypeScript olarak belirleyin. Ardından, Quick Start sekmesinde Short Message Service (SMS) için SDK kurulum talimatlarını bulabilirsiniz.image

Erişim Kimlik Bilgilerini Ayarlama

OpenAPI işlemlerini çağırmak için AccessKey veya Security Token Service (STS) token gibi erişim kimlik bilgileri gerekir. Kimlik bilgilerinin sızmasını önlemek amacıyla bunları ortam değişkenlerinde saklayın. En iyi uygulamalar için bkz. Erişim kimlik bilgilerini güvenli şekilde kullanma. Aşağıdaki örneklerde ALIBABA_CLOUD_ACCESS_KEY_ID ve ALIBABA_CLOUD_ACCESS_KEY_SECRET ortam değişkenleri kullanılmaktadır.

Linux ve macOS'ta yapılandırma yöntemi

Aşağıdaki örneklerde değişken adı olarak ALIBABA_CLOUD_ACCESS_KEY_ID ve ALIBABA_CLOUD_ACCESS_KEY_SECRET kullanılmıştır. Gerekirse bu adları kendi tercih ettiğiniz isimlerle değiştirin; örneğin OSS_ACCESS_KEY_ID ve OSS_ACCESS_KEY_SECRET.

Ortam değişkenlerini ayarlamak için aşağıdaki export komutlarını çalıştırın:

Önemli

export ile ayarlanan değişkenler geçicidir ve yalnızca geçerli oturum için geçerlidir. Kalıcılık sağlamak üzere export komutunu kabuk başlangıç dosyanıza (örneğin ~/.bashrc veya ~/.zshrc) ekleyin.

  • AccessKey ID değerini ayarlayın:

    # Replace yourAccessKeyID with your AccessKey ID.
    export ALIBABA_CLOUD_ACCESS_KEY_ID=yourAccessKeyID
  • AccessKey secret değerini ayarlayın:

    # Replace yourAccessKeySecret with your AccessKey secret.
    export ALIBABA_CLOUD_ACCESS_KEY_SECRET=yourAccessKeySecret
  • Yapılandırmayı doğrulayın.

    echo $ALIBABA_CLOUD_ACCESS_KEY_ID komutunu çalıştırın. Doğru değer döndürülürse yapılandırma başarılı olmuştur.

Windows'ta yapılandırma yöntemi

Grafiksel kullanıcı arayüzünü (GUI) kullanma

  • Yordam

    Aşağıdaki adımlarda Windows 10'da GUI kullanarak ortam değişkenlerinin nasıl ayarlanacağı açıklanmaktadır.

    Masaüstünüzde This PC öğesine sağ tıklayın ve Properties > Advanced system settings > Environment Variables > New seçeneklerini izleyin (System variables veya User variables altında). Ardından yapılandırmayı tamamlayın.

    Değişken

    Örnek değer

    AccessKey ID

    • Değişken adı: ALIBABA_CLOUD_ACCESS_KEY_ID

    • Değişken değeri: yourAccessKeyID

    AccessKey secret

    • Değişken adı: ALIBABA_CLOUD_ACCESS_KEY_SECRET

    • Değişken değeri: yourAccessKeySecret

  • Yapılandırmayı test edin

    Start menüsüne tıklayın (veya Win+R klavye kısayolunu kullanın), Run seçeneğine tıklayın, cmd yazın ve komut istemini açmak için OK düğmesine tıklayın (veya Enter tuşuna basın). echo %ALIBABA_CLOUD_ACCESS_KEY_ID% ve echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET% komutlarını çalıştırın. Komutlar doğru AccessKey değerlerini döndürürse yapılandırma başarılı olmuştur.

Komut istemini (CMD) kullanma

  • Yordam

    Komut istemini yönetici olarak açın ve sisteme yeni ortam değişkenleri eklemek için aşağıdaki komutları çalıştırın.

    setx ALIBABA_CLOUD_ACCESS_KEY_ID yourAccessKeyID /M
    setx ALIBABA_CLOUD_ACCESS_KEY_SECRET yourAccessKeySecret /M

    /M parametresi bir sistem ortam değişkenini belirtir. Kullanıcı ortam değişkeni ayarlarken bu parametreyi atlayabilirsiniz.

  • Yapılandırmayı test edin

    Start menüsüne tıklayın (veya Win+R klavye kısayolunu kullanın), Run seçeneğine tıklayın, cmd yazın ve komut istemini açmak için OK düğmesine tıklayın (veya Enter tuşuna basın). echo %ALIBABA_CLOUD_ACCESS_KEY_ID% ve echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET% komutlarını çalıştırın. Komutlar doğru AccessKey değerlerini döndürürse yapılandırma başarılı olmuştur.

Windows PowerShell'i kullanma

PowerShell'de tüm yeni oturumlarda geçerli olacak yeni ortam değişkenleri ayarlayabilirsiniz:

[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_ID', 'yourAccessKeyID', [System.EnvironmentVariableTarget]::User)
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_SECRET', 'yourAccessKeySecret', [System.EnvironmentVariableTarget]::User)

Tüm kullanıcılar için ortam değişkenleri ayarlamak üzere yönetici izinlerine sahip olmanız gerekir:

[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_ID', 'yourAccessKeyID', [System.EnvironmentVariableTarget]::Machine)
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_SECRET', 'yourAccessKeySecret', [System.EnvironmentVariableTarget]::Machine)

Yalnızca geçerli oturum için geçerli olacak geçici ortam değişkenleri ayarlayabilirsiniz:

$env:ALIBABA_CLOUD_ACCESS_KEY_ID = "yourAccessKeyID"
$env:ALIBABA_CLOUD_ACCESS_KEY_SECRET = "yourAccessKeySecret"

PowerShell'de Get-ChildItem env:ALIBABA_CLOUD_ACCESS_KEY_ID ve Get-ChildItem env:ALIBABA_CLOUD_ACCESS_KEY_SECRET komutlarını çalıştırın. Komutlar doğru AccessKey değerlerini döndürürse yapılandırma başarılı olmuştur.

SDK'yı Kullanma

Bu konuda Short Message Service (SMS) hizmetinin veya SendMessageToGlobe API işleminin nasıl çağrılacağına ilişkin bir örnek sunulmaktadır. veya SendMessageToGlobe API işlemine ilişkin API referansı için bkz. veya SendMessageToGlobe.

1. İstek istemcisini başlatma

Tüm OpenAPI çağrıları bir istek istemcisi üzerinden gerçekleşir. Bu örnekte bir istemci AccessKey çifti kullanılarak başlatılır. Diğer başlatma yöntemleri için bkz. Erişim kimlik bilgilerini yönetme.

Önemli
  • Dysmsapi20180501 ve örnekleri gibi istemci nesneleri iş parçacığı açısından güvenlidir ve çok iş parçacıklı ortamlarda her iş parçacığı için ayrı bir örnek oluşturmadan kullanılabilir.

  • İstemci nesnelerini new ile tekrar tekrar oluşturmayın. Uygulama yaşam döngüsü boyunca kimlik bilgisi ve uç nokta başına yalnızca bir istemci örneği bulunacak şekilde singleton tasarım desenini kullanın.

TypeScript örneği

import Dysmsapi20180501, * as $Dysmsapi20180501 from '@alicloud/dysmsapi20180501';
import OpenApi, * as $OpenApi from '@alicloud/openapi-client';
import Util, * as $Util from '@alicloud/tea-util';

export default class Client {

  static createClient(): Dysmsapi20180501 {
    let config = new $OpenApi.Config({
      // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is set.
      accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
      // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is set.
      accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
    });
    // For more information about the endpoint, see https://api.alibabacloud.com/product/Dysmsapi.
    config.endpoint = `dysmsapi.aliyuncs.com`;
    return new Dysmsapi20180501(config);
  }
}

Node.js örneği

const Dysmsapi20180501 = require('@alicloud/dysmsapi20180501');
const OpenApi = require('@alicloud/openapi-client');
const Util = require('@alicloud/tea-util');
const Tea = require('@alicloud/tea-typescript');

class Client {

  static createClient() {
    let config = new OpenApi.Config({
      // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is set.
      accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
      // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is set.
      accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
    });
    // For more information about the endpoint, see https://api.alibabacloud.com/product/Dysmsapi.
    config.endpoint = `dysmsapi.aliyuncs.com`;
    return new Dysmsapi20180501.default(config);
  }
}

2. İstek nesnesini oluşturma

Parametreleri SDK istek nesnesi aracılığıyla iletin; bu nesne <OpenAPI Adı>Request şeklinde adlandırılır (örneğin SendSmsRequest). Parametre ayrıntıları için API referansına bakın: SendMessageToGlobe.

Not

Bir API'nin istek parametresi yoksa bu adımı atlayın. Örneğin, DescribeCdnSubList işlemi için istek nesnesi gerekmez.

TypeScript örneği

 // Create request object and set required input parameters
 let sendMessageToGlobeRequest = new $Dysmsapi20180501.SendMessageToGlobeRequest({
      // Please replace with the actual recipient number.
      to: "<YOUR_VALUE>",
      // Please replace with the actual SMS content.
      message: "<YOUR_VALUE>",
    });

Node.js örneği

// Create request object and set required input parameters
let sendMessageToGlobeRequest = new Dysmsapi20180501.SendMessageToGlobeRequest({
    // Please replace with the actual recipient number.
    to: '<YOUR_VALUE>',
    // Please replace with the actual SMS content.
    message: '<YOUR_VALUE>',
});

3. İsteği gönderme

İstemcinin <operationName>WithOptions işlevini çağırın; burada <operationName> API adının camel case biçimidir. Bu işlev bir istek nesnesi ve çalışma zamanı parametrelerini (zaman aşımı, proxy vb.) alır. Bkz. Gelişmiş yapılandırmalar.

Not

Bir API'nin istek parametresi yoksa yalnızca çalışma zamanı seçeneklerini iletin. Örneğin, DescribeCdnSubList işlemi için yalnızca çalışma zamanı parametreleri gerekir.

TypeScript örneği

// Create runtime parameters.
let runtime = new $Util.RuntimeOptions({ });
let client = Client.createClient();
// Send a request.
await client.sendMessageToGlobeWithOptions(sendMessageToGlobeRequest, runtime);

Node.js örneği

// Create runtime parameters.
let runtime = new Util.RuntimeOptions({ });
let client = Client.createClient();
// Send a request.
await client.sendMessageToGlobeWithOptions(sendMessageToGlobeRequest, runtime);

4. Özel durumları işleme

V2.0 Node.js SDK iki tür özel durum oluşturur:

  • UnretryableError: Genellikle ağ sorunlarından kaynaklanan maksimum yeniden deneme sayısı aşıldığında oluşturulur. Son isteği err.data.lastRequest üzerinden alabilirsiniz.

  • ResponseError: API tarafından döndürülen sunucu tarafı hatasını belirtir.

Bkz. Özel durum işleme.

Önemli

Özel durumları her zaman işleyin — yaygınlaştırın, günlüğe kaydedin veya kurtarma sağlayın. Asla sessizce görmezden gelmeyin.

Tam kod örneğini görüntülemek için tıklayın

SendMessageToGlobe API çağrı örneği

TypeScript örneği

import Dysmsapi20180501, * as $Dysmsapi20180501 from '@alicloud/dysmsapi20180501';
import OpenApi, * as $OpenApi from '@alicloud/openapi-client';
import Util, * as $Util from '@alicloud/tea-util';

export default class Client {

  static createClient(): Dysmsapi20180501 {
    let config = new $OpenApi.Config({
      // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is set.
      accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
      // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is set.
      accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
    });
    // For more information about the endpoint, see https://api.alibabacloud.com/product/Dysmsapi.
    config.endpoint = `dysmsapi.aliyuncs.com`;
    return new Dysmsapi20180501(config);
  }

  static async main(): Promise<void> {
    let client = Client.createClient();
    // Create a request object and set the input parameters.
    let sendMessageToGlobeRequest = new $Dysmsapi20180501.SendMessageToGlobeRequest({
      to: "<YOUR_VALUE>",
      from: "<YOUR_VALUE>",
      message: "<YOUR_VALUE>",
    });
    let runtime = new $Util.RuntimeOptions({ });
    try {
      // Send the request.
      await client.sendMessageToGlobeWithOptions(sendMessageToGlobeRequest, runtime);
    } catch (error) {
      // This is for demonstration purposes only. Handle exceptions with care. Do not ignore exceptions in your project.
      // Error message
      console.log(error.message);
      // Diagnostic address
      console.log(error.data["Recommend"]);
    }    
  }
}

Client.main();

Node.js örneği

const Dysmsapi20180501 = require('@alicloud/dysmsapi20180501');
const OpenApi = require('@alicloud/openapi-client');
const Util = require('@alicloud/tea-util');

class Client {

  static createClient() {
    let config = new OpenApi.Config({
      // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is set.
      accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
      // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is set.
      accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
    });
    // For more information about the endpoint, see https://api.alibabacloud.com/product/Dysmsapi.
    config.endpoint = `dysmsapi.aliyuncs.com`;
    return new Dysmsapi20180501.default(config);
  }

  static async main() {
    // Create a request object and set the input parameters.
    let client = Client.createClient();
    let sendMessageToGlobeRequest = new Dysmsapi20180501.SendMessageToGlobeRequest({
      to: '<YOUR_VALUE>',
      from: '<YOUR_VALUE>',
      message: '<YOUR_VALUE>',
    });
    let runtime = new Util.RuntimeOptions({ });
    try {
      // Send the request.
      await client.sendMessageToGlobeWithOptions(sendMessageToGlobeRequest, runtime);
    } catch (error) {
      // This is for demonstration purposes only. Handle exceptions with care. Do not ignore exceptions in your project.
      // Error message
      console.log(error.message);
      // Diagnostic address
      console.log(error.data["Recommend"]);
      Util.default.assertAsString(error.message);
    }    
  }
}

exports.Client = Client;
Client.main();

Advance işlemleriyle dosya yükleme

Bazı API'ler (görüntü arama ve Visual Intelligence gibi) yerel dosya yollarını doğrudan kabul etmez. Dosyaları bir akış üzerinden yüklemek için Advance işlemini kullanın. SDK, dosyayı cn-shanghai bölgesindeki bir OSS paketinde geçici olarak depolar ve hizmet buradan okur. Bu örnekte Visual Intelligence API'sinin DetectBodyCount işlemi kullanılmaktadır.

Önemli

Alibaba Cloud OSS'de depolanan geçici dosyalar periyodik olarak temizlenir.

  1. İstek istemcisini başlatma

    Hem regionId hem de endpoint değerlerini aynı bölgeye ayarlayın. regionId değeri geçici OSS dosyasının depolandığı yeri belirler. regionId değerini atlarsanız ürün ile OSS paketi arasında bir bölge uyumsuzluğu meydana gelir ve bu da zaman aşımlarına neden olur.

    TypeScript örneği

    function createClient(): facebody20191230 {
        let config = new $OpenApi.Config({
            // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is set.
            accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is set.
            accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
        });
        // The endpoint and regionId must be for the same region.
        config.regionId = 'cn-shanghai';
        config.endpoint = 'facebody.cn-shanghai.aliyuncs.com';
        return new facebody20191230(config);
    }

    Node.js örneği

    function createClient() {
      let config = new OpenApi.Config({
        // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is set.
        accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
        // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is set.
        accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
      });
      // The endpoint and regionId must be for the same region.
      config.regionId = 'cn-shanghai';
      config.endpoint = 'facebody.cn-shanghai.aliyuncs.com';
      return new facebody20191230.default(config);
    }
  2. İstek nesnesini oluşturma

    Dosya akışını iletmek için bir <OpenAPIAdı>AdvanceRequest nesnesi oluşturun. Dosya akışı için parametre adı ImageURLObject şeklindedir.

    TypeScript örneği

        // Read the file as a file stream.
        const filePath = '<FILE_PATH>';  // Replace this with the actual file path.
        // Check if the file exists.
        if (!fs.existsSync(filePath)) {
            console.error('File does not exist:', filePath);
            return;
        }
        // Create a stream and listen for stream errors.
        const fileStream = fs.createReadStream(filePath).on('error', (err) => {
            console.error('Stream error:', err);
            process.exit(1);
        });
    
        let detectBodyCountAdvanceRequest = new $facebody20191230.DetectBodyCountAdvanceRequest({
          imageURLObject: fileStream,
        });

    Node.js örneği

        // Read the file as a file stream.
        const filePath = '<FILE_PATH>';  // Replace this with the actual file path.
        // Check if the file exists.
        if (!fs.existsSync(filePath)) {
            console.error('File does not exist:', filePath);
            return;
        }
        // Create a stream and listen for stream errors.
        const fileStream = fs.createReadStream(filePath).on('error', (err) => {
            console.error('Stream error:', err);
            process.exit(1);
        });
    
        let detectBodyCountAdvanceRequest = new facebody20191230.DetectBodyCountAdvanceRequest({
            imageURLObject: fileStream,
        });
  3. İsteği gönderme

    İsteği göndermek için <operationName>Advance işlevini çağırın.

    TypeScript örneği

    // Configure runtime parameters.
    let runtime = new $Util.RuntimeOptions({ });
    let client = Client.createClient();
    // Send the request.
    await client.detectBodyCountAdvance(detectBodyCountAdvanceRequest, runtime);

    Node.js örneği

     // Configure runtime parameters.
     let runtime = new Util.RuntimeOptions({ });
     let client = Client.createClient();
     // Send the request.
     await client.detectBodyCountAdvance(detectBodyCountAdvanceRequest, runtime);  

Tam kod örneğini görüntülemek için tıklayın

TypeScript örneği

import { default as facebody20191230 } from '@alicloud/facebody20191230';
import * as $facebody20191230 from '@alicloud/facebody20191230';
import * as $OpenApi from '@alicloud/openapi-client';
import * as $Util from '@alicloud/tea-util';
import * as fs from "fs";

export default class Client {
    static createClient(): facebody20191230 {
        let config = new $OpenApi.Config({
            // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is set.
            accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is set.
            accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
        });
        config.regionId = 'cn-shanghai';
        config.endpoint = 'facebody.cn-shanghai.aliyuncs.com';
        return new facebody20191230(config);
    }

    static async main(): Promise<void> {
        let client = Client.createClient();

        // Read the file as a file stream.
        const filePath = '<FILE_PATH>';  // Replace this with the actual file path.
        // Check if the file exists.
        if (!fs.existsSync(filePath)) {
            console.error('File does not exist:', filePath);
            return;
        }
        // Create a stream and listen for stream errors.
        const fileStream = fs.createReadStream(filePath).on('error', (err) => {
            console.error('Stream error:', err);
            process.exit(1);
        });

        let detectBodyCountAdvanceRequest = new $facebody20191230.DetectBodyCountAdvanceRequest({
            imageURLObject: fileStream,
        });
        let runtime = new $Util.RuntimeOptions({});
        try {
            // Send the request.
            const res = await client.detectBodyCountAdvance(detectBodyCountAdvanceRequest, runtime);
            console.log(res);
        } catch (error) {
            if (error instanceof Error) {
                console.error('Error message:', error.message);
                const data = (error as any)?.data?.Recommend;
                if (typeof data === 'string') {
                    console.log('Diagnostic suggestion:', data);
                }
            }
        }
    }
}

Client.main();

Node.js örneği

'use strict';
const facebody20191230 = require('@alicloud/facebody20191230');
const OpenApi = require('@alicloud/openapi-client');
const Util = require('@alicloud/tea-util');
const fs = require('fs');

class Client {
  static createClient() {
    let config = new OpenApi.Config({
      // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is set.
      accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
      // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is set.
      accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
    });
    config.regionId = 'cn-shanghai';
    config.endpoint = 'facebody.cn-shanghai.aliyuncs.com';
    return new facebody20191230.default(config);
  }

  static async main() {
    let client = Client.createClient();
    // Read the file as a file stream.
    const filePath = '<FILE_PATH>';  // Replace this with the actual file path.
    // Check if the file exists.
    if (!fs.existsSync(filePath)) {
      console.error('File does not exist:', filePath);
      return;
    }
    // Create a stream and listen for stream errors.
    const fileStream = fs.createReadStream(filePath).on('error', (err) => {
      console.error('Stream error:', err);
      process.exit(1);
    });
    // Configure request parameters.
    let detectBodyCountAdvanceRequest = new facebody20191230.DetectBodyCountAdvanceRequest({
      imageURLObject: fileStream,
    });
    let runtime = new Util.RuntimeOptions({});
    try {
      // Send the request.
      const res = await client.detectBodyCountAdvance(detectBodyCountAdvanceRequest, runtime);
      console.log(res);
    } catch (error) {
      // This is for demonstration purposes only. Handle exceptions with care. Do not ignore exceptions in your project.
      console.log(error);
    }
  }
}

exports.Client = Client;
Client.main();

SSS

  1. Bir API çağrılırken "You are not authorized to perform this operation" hatası

    Neden ve çözüm

    Neden: AccessKey'inizle ilişkili RAM kullanıcısının API'yi çağırmak için gerekli izinleri yoktur.

    Çözüm: RAM kullanıcısına gerekli API izinlerini verin. Bkz. RAM kullanıcısı izinlerini yönetme.

    Örneğin, veya SendMessageToGlobe işlemini çağırırken bu hatayı alıyorsanız aşağıdaki özel izin ilkesini oluşturup RAM kullanıcısına ekleyebilirsiniz.

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "dysms:SendMessageToGlobe",
          "Resource": "*"
        }
      ]
    }
  2. "triggerUncaughtException Error: getaddrinfo ENOTFOUND" hatası (uç nokta sorunu)

    Neden ve çözüm

    Neden: Belirtilen uç nokta, çağırdığınız OpenAPI işlemi tarafından desteklenmiyor.

    Çözüm: Uç nokta yapılandırması bölümündeki talimatları izleyerek uç noktayı düzeltin ve tekrar deneyin.

  3. "Cannot read properties of undefined (reading 'getCredential')" veya "InvalidAccessKeyId.NotFound: code: 404" hatası

    Neden ve çözüm

    Neden: AccessKey doğru şekilde iletilmedi.

    Çözüm: İstemci başlatma sırasında AccessKey'in doğru iletildiğini doğrulayın. process.env("XXX") ifadesi XXX değerini ortam değişkenlerinden okur.

Diğer yaygın hatalar için bkz. SSS.