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);

呢頁包裝咗乜嘢