Lingara Lingara 說明文件 學習指南 API 函式庫 App 建立 網頁版
語言: 客家話

身分驗證

這頁係對英文翻譯過來个。若係兩片無共樣,以英文頁為準。 看英文頁

你用一隻 OAuth 用戶端个用戶端 ID 摎用戶端密鑰來建立用戶端,其他个就交分函式庫來處理。佢從來毋會向你討存取權杖。

函式庫同你做个事情

  • 一擺交換,大家共用。 頭一隻需要權杖个呼叫會用你个憑證換一隻權杖轉來。若係有幾隻呼叫同時開始,佢兜全部會共下等該一擺交換,毋係每隻自家另外去換。
  • 快到期正會換。 權杖會一直重複使用,到佢到期前 60 秒,過後在下一擺呼叫个時節換一隻新个。背景肚毋會自動更新麼个,所以一隻閒閒个程序毋會發出任何請求。
  • 拄著 401 會重試一擺。 若係 API 毋收某隻權杖,函式庫會放忒佢,拿一隻新權杖,再將這擺呼叫重做一擺。第二擺 401 就會當做 API 錯誤拋出來。
  • 有時限个交換。 一隻權杖請求若係無回應,30 秒過後就會失敗,所以一隻慢吞吞个權杖端點毋會拖著所有个呼叫方。
  • 無東西好洩漏。 用戶端密鑰摎每一隻存取權杖在記錄檔、除錯輸出摎錯誤訊息肚都會顯示做 [REDACTED]。

毋使權杖个操作(像列出 API 版本)從來毋會傳送權杖,所以一隻無憑證建立个用戶端也做得呼叫佢兜。

將密鑰留在你个伺服器項

用戶端密鑰認个係你个應用程式,毋係你个使用者。請將佢放在伺服器个設定抑係密鑰庫肚,千萬毋好將佢跈等瀏覽器網頁抑係手機 App 共下發布出去。

程式碼範例个語言

TypeScript

import { Lingara } from "@lingara/api";

const client = new Lingara({
  clientId: process.env.LINGARA_CLIENT_ID!,
  clientSecret: process.env.LINGARA_CLIENT_SECRET!,
});

Rust

use lingara::Client;

let client = Client::builder()
    .client_credentials(std::env::var("LINGARA_CLIENT_ID")?, std::env::var("LINGARA_CLIENT_SECRET")?)
    .build()?;

Go

import (
	"os"

	lingara "github.com/Spinning-Cat-Studios/lingara_api_clients/go"
)

client, err := lingara.New(
	lingara.WithClientCredentials(os.Getenv("LINGARA_CLIENT_ID"), os.Getenv("LINGARA_CLIENT_SECRET")),
)
if err != nil {
	return nil, err
}

Java

import com.getlingara.client.LingaraClient;

LingaraClient client =
    LingaraClient.builder()
        .clientCredentials(
            System.getenv("LINGARA_CLIENT_ID"), System.getenv("LINGARA_CLIENT_SECRET"))
        .build();

Kotlin

import com.getlingara.kotlin.LingaraClient

val client =
    LingaraClient {
        clientCredentials(System.getenv("LINGARA_CLIENT_ID"), System.getenv("LINGARA_CLIENT_SECRET"))
    }

Ruby

require "lingara"

client = Lingara::Client.new(client_id: client_id, client_secret: client_secret)

PHP

use Lingara\Client;

$client = new Client(clientId: $clientId, clientSecret: $clientSecret);

這頁包裝个內容