Panduan Pengesahan
Pelajari cara mengesahkan dengan Smart Money API menggunakan kunci API, token JWT, dan OAuth 2.0. Selamatkan integrasi anda dengan kaedah pengesahan standard industri dan amalan terbaik.
Gambaran Keseluruhan
Smart Money API menyokong pelbagai kaedah pengesahan untuk kes penggunaan yang berbeza. Pilih kaedah yang paling sesuai dengan integrasi anda:
Kunci API (utama): Hantar kunci anda dalam X-API-Key header permintaan untuk semua panggilan API REST. Ini adalah kaedah yang disyorkan untuk bot dan penggunaan server-ke-server.
Sesi JWT (sandaran): Sesi pelayar/dashboard disahkan dengan JWT sesi melalui Authorization: Bearer, sah selama 24 jam. Pelanggan berprogram harus mengutamakan X-API-Key.
OAuth 2.0: Pengesahan gred perusahaan untuk aplikasi berbilang pengguna dan integrasi pihak ketiga. Pengguna membenarkan apl anda mengakses data mereka.
Semua permintaan API mesti dibuat melalui HTTPS. Permintaan HTTP tidak disulitkan akan ditolak. Selain itu, jangan sekali-kali menyimpan kunci API dalam kawalan versi atau berkongsinya secara terbuka.
Kunci API
Kunci API adalah kelayakan unik yang dikeluarkan untuk akaun anda. Setiap kunci mewakili satu set kebenaran dan kuota. Anda boleh menjana berbilang kunci untuk aplikasi atau persekitaran yang berbeza (pembangunan, pentas, pengeluaran).
Menjana Kunci API
Jana kunci API dari konsol akaun anda:
- Navigasi ke Smart Money Console
- Pilih "Kunci API" dari bar sisi
- Klik "Jana Kunci Baru"
- Pilih jenis kunci (Pembangunan, Pentas, Pengeluaran)
- Tetapkan had kadar dan ciri
- Salin dan simpan kunci dengan selamat
Simpan kunci API anda dengan segera! Anda tidak akan dapat melihatnya lagi. Jika anda kehilangannya, anda perlu menjana kunci baru.
Format Kunci
Kunci API mengikuti format standard:
sk_live_4e3e4d0f1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z
sk_test_8f4g5h6i7j8k9l0m1n2o3p4q5r6s7t8u9v0w1x2y3z4a5b6c7d8e9f
sk_dev_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b
Awalan kunci menunjukkan persekitaran:
sk_live_ — Kunci pengeluaran dengan kuota penuh
sk_test_ — Kunci ujian dengan kuota dikurangkan dan data pembangunan
sk_dev_ — Kunci pembangunan peribadi dengan data kotak pasir
Header X-API-Key (utama)
Hantar kunci API anda dalam X-API-Key header permintaan untuk semua permintaan API. Jangan sekali-kali meletakkan kunci anda dalam URL.
Header HTTP
GET /v1/whales/events HTTP/1.1
Host: api.smartmoneyapi.com
X-API-Key: sm_your_key
Content-Type: application/json
Contoh cURL
curl -X GET https://api.smartmoneyapi.com/v1/whales/events \
-H "X-API-Key: sm_your_key" \
-H "Content-Type: application/json"
Contoh Python
import requests
api_key = "sm_your_key"
headers = {
"X-API-Key": api_key,
"Content-Type": "application/json"
}
response = requests.get(
"https://api.smartmoneyapi.com/v1/whales/events",
headers=headers
)
data = response.json()
Pengesahan Token JWT
Untuk sesi jangka panjang dan komunikasi server-ke-server, tukar kunci API anda dengan token JWT. Token JWT bertahan selama 24 jam dan mengurangkan keperluan untuk menyimpan kunci API dalam kod aplikasi.
Mendapatkan Token JWT
POST kunci API anda ke titik akhir JWT untuk mendapatkan token:
curl -X POST https://api.smartmoneyapi.com/auth/jwt \
-H "Content-Type: application/json" \
-d '{
"api_key": "sk_live_4e3e4d0f1b2c3d4e5f6g7h8i9j0k1l2m"
}'
Respons JWT
{
"success": true,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"expires_in": 86400,
"token_type": "Bearer"
}
Menggunakan Token JWT
Gunakan token JWT dalam header Authorization seperti kunci API:
import requests
import json
from datetime import datetime, timedelta
class JWTAuth:
def __init__(self, api_key):
self.api_key = api_key
self.token = None
self.token_expires = None
def get_valid_token(self):
# Check if current token is still valid
if self.token and self.token_expires > datetime.now():
return self.token
# Get new token
response = requests.post(
"https://api.smartmoneyapi.com/auth/jwt",
json={"api_key": self.api_key}
)
data = response.json()
self.token = data["token"]
self.token_expires = datetime.now() + timedelta(seconds=data["expires_in"])
return self.token
def request(self, method, url, **kwargs):
token = self.get_valid_token()
headers = kwargs.get("headers", {})
headers["Authorization"] = f"Bearer {token}"
kwargs["headers"] = headers
return requests.request(method, url, **kwargs)
# Usage
auth = JWTAuth("sk_live_4e3e4d0f1b2c3d4e5f6g7h8i9j0k1l2m")
response = auth.request(
"GET",
"https://api.smartmoneyapi.com/v1/whales/events"
)
print(response.json())
OAuth 2.0
OAuth 2.0 adalah untuk aplikasi yang perlu mengakses berbilang akaun pengguna. Pengguna memberikan kebenaran kepada apl anda untuk mengakses data mereka tanpa berkongsi kunci API mereka.
Aliran OAuth 2.0
Smart Money API menyokong aliran Kod Pengesahan untuk aplikasi web:
- Pengguna klik butang "Sambung dengan Smart Money"
- Pelayar mengalihkan ke halaman pengesahan
- Pengguna memberikan kebenaran kepada apl anda
- Pelayar mengalihkan semula dengan kod pengesahan
- Backend anda menukar kod untuk token akses
- Anda kini boleh mengakses data pengguna bagi pihak mereka
Langkah 1: Permintaan Pengesahan
Alihkan pengguna ke titik akhir pengesahan:
https://auth.smartmoneyapi.com/authorize?
client_id=YOUR_CLIENT_ID&
redirect_uri=https://yourapp.com/callback&
response_type=code&
scope=whale_positions+funding_rates+liquidations&
state=random_state_string
Langkah 2: Pertukaran Token
Selepas pengguna memberikan kebenaran, tukar kod untuk token akses:
curl -X POST https://auth.smartmoneyapi.com/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=authorization_code&code=AUTH_CODE&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&redirect_uri=https://yourapp.com/callback"
Respons Token OAuth
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "rt_1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p",
"scope": "whale_positions funding_rates liquidations"
}
Amalan Keselamatan Terbaik
Simpan Kunci dengan Selamat
Jangan sekali-kali menyimpan kunci API dalam kawalan versi, mengodkannya dalam aplikasi, atau berkongsinya dalam dokumentasi. Gunakan pembolehubah persekitaran atau perkhidmatan pengurusan kunci yang selamat seperti AWS Secrets Manager, HashiCorp Vault, atau yang serupa.
Gunakan HTTPS Sahaja
Semua permintaan API mesti menggunakan HTTPS (TLS 1.2 atau lebih tinggi). Permintaan HTTP akan ditolak. Ini memastikan kunci API dan data anda disulitkan dalam transit.
Hadkan Kebenaran Kunci
Buat kunci API berasingan untuk aplikasi dan persekitaran yang berbeza. Gunakan skop untuk mengehadkan apa yang boleh diakses oleh setiap kunci. Jangan gunakan kunci pengeluaran dalam pembangunan.
Pantau Penggunaan Kunci
Semak penggunaan API secara berkala dalam konsol anda. Tetapkan amaran untuk aktiviti luar biasa atau kuota yang menghampiri had. Padam kunci yang tidak lagi anda gunakan.
Putaran Kunci
Putar kunci API anda secara berkala untuk mengurangkan risiko kompromi. Kami mengesyorkan memutar kunci setiap 90 hari:
- Jana kunci API baru dalam konsol anda
- Kemas kini aplikasi anda untuk menggunakan kunci baru
- Uji bahawa semuanya berfungsi dengan betul
- Padam kunci lama dari konsol anda
Skop & Kebenaran
Apabila mencipta kunci API atau menggunakan OAuth, nyatakan sumber mana yang boleh diakses oleh kunci anda:
| Skop |
Penerangan |
Tier |
| whale_positions |
Baca posisi dompet ikan paus |
Trader+ |
| funding_rates |
Baca data kadar pembiayaan |
Free+ |
| liquidations |
Baca suapan peleraian |
Free+ |
| open_interest |
Baca data minat terbuka |
Trader+ |
| confirmation_scores |
Baca skor pengesahan AI |
Pro+ |
| on_chain |
Baca metrik on-chain |
Pro+ |
Contoh Kod Pengesahan
Integrasi Python Lengkap
import requests
from typing import Optional, Dict
from datetime import datetime, timedelta
class SmartMoneyAuth:
"""Mengendalikan semua kaedah pengesahan untuk Smart Money API"""
def __init__(self, api_key: str):
self.api_key = api_key
self.base_url = "https://api.smartmoneyapi.com"
self.jwt_token = None
self.jwt_expires = None
def get_jwt_token(self) -> str:
"""Dapatkan atau segar semula token JWT"""
if self.jwt_token and self.jwt_expires > datetime.now():
return self.jwt_token
response = requests.post(
f"{self.base_url}/auth/jwt",
json={"api_key": self.api_key}
)
data = response.json()
self.jwt_token = data["token"]
self.jwt_expires = datetime.now() + timedelta(seconds=data["expires_in"] - 300)
return self.jwt_token
def headers_bearer(self) -> Dict:
"""Dapatkan header untuk pengesahan token Bearer"""
return {
"Authorization": f"Bearer {self.api_key}",
"Content-Type": "application/json"
}
def headers_jwt(self) -> Dict:
"""Dapatkan header untuk pengesahan JWT"""
token = self.get_jwt_token()
return {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json"
}
def request(self, method: str, endpoint: str, use_jwt: bool = False, **kwargs) -> Dict:
"""Buat permintaan yang disahkan"""
headers = self.headers_jwt() if use_jwt else self.headers_bearer()
response = requests.request(
method,
f"{self.base_url}{endpoint}",
headers=headers,
**kwargs
)
return response.json()
# Penggunaan
auth = SmartMoneyAuth("sk_live_abc123xyz789")
# Kaedah token Bearer
whales = auth.request("GET", "/v1/whales/events?symbol=BTCUSDT")
# Kaedah JWT (penyegaran automatik)
whales_jwt = auth.request("GET", "/v1/whales/events?symbol=BTCUSDT", use_jwt=True)
print(f"Ditemui {whales['data']['total']} posisi ikan paus")
Perlukan Bantuan?
Semak dokumentasi API kami atau hubungi sokongan jika anda memerlukan bantuan dengan pengesahan.
Rujukan API
Hasilkan Kunci API Pertama Anda
Mulakan dengan Smart Money API. Cipta akaun anda dan hasilkan kelayakan pengesahan dalam beberapa minit.
Pergi ke Konsol