מדריך אימות

למדו כיצד לבצע אימות עם Smart Money API באמצעות מפתחות API, אסימוני JWT ו-OAuth 2.0. אבטחו את האינטגרציות שלכם עם שיטות אימות תקניות ותרגולי אבטחה מומלצים.

סקירה כללית

Smart Money API תומך במספר שיטות אימות עבור מקרי שימוש שונים. בחרו את השיטה המתאימה ביותר לאינטגרציה שלכם:

מפתחות API (עיקרי): שלחו את המפתח שלכם ב X-API-Key כותרת הבקשה לכל קריאות REST API. זו השיטה המומלצת עבור בוטים ותקשורת שרת-לשרת.
אסימון JWT של סשן (גיבוי): סשנים בדפדפן/לוח מחוונים מבצעים אימות עם אסימון JWT דרך Authorization: Bearer, תקף ל-24 שעות. לקוחות תכנותיים צריכים להעדיף X-API-Key.
OAuth 2.0: אימות ברמת ארגון עבור יישומים מרובי משתמשים ואינטגרציות צד שלישי. משתמשים מאשרים ליישום שלכם גישה לנתונים שלהם.
כל בקשות API חייבות להתבצע דרך HTTPS. בקשות HTTP לא מוצפנות יידחו. בנוסף, לעולם אל תכניסו מפתחות API לבקרת גרסאות או תשתפו אותם בפומבי.

מפתחות API

מפתחות API הם פרטי גישה ייחודיים שהונפקו לחשבון שלכם. כל מפתח מייצג סט יחיד של הרשאות ומכסות. תוכלו ליצור מספר מפתחות עבור יישומים או סביבות שונים (פיתוח, בדיקות, production).

יצירת מפתח API

צרו מפתחות API ממסוף החשבון שלכם:

  1. נווטו אל Smart Money Console
  2. בחרו "מפתחות API" מהסרגל הצדדי
  3. לחצו על "צור מפתח חדש"
  4. בחרו סוג מפתח (פיתוח, בדיקות, production)
  5. הגדירו הגבלת קצב ותכונות
  6. העתיקו ושמרו את המפתח בצורה מאובטחת
שמרו את מפתח ה-API שלכם מיד! לא תוכלו לצפות בו שוב. אם תאבדו אותו, תצטרכו ליצור מפתח חדש.

פורמט המפתח

מפתחות API עוקבים אחר פורמט סטנדרטי:

פורמט המפתח
sk_live_4e3e4d0f1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z sk_test_8f4g5h6i7j8k9l0m1n2o3p4q5r6s7t8u9v0w1x2y3z4a5b6c7d8e9f sk_dev_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b

קידומות המפתח מציינות סביבה:

sk_live_ — מפתחות production עם מלוא המכסה
sk_test_ — מפתחות בדיקות עם מכסה מופחתת ונתוני פיתוח
sk_dev_ — מפתחות פיתוח אישיים עם נתוני ארגז חול

כותרת X-API-Key (עיקרי)

שלחו את מפתח ה-API שלכם ב X-API-Key כותרת הבקשה לכל בקשות API. לעולם אל תמקמו את המפתח שלכם ב-URL.

כותרת HTTP

HTTP
GET /v1/whales/events HTTP/1.1 Host: api.smartmoneyapi.com X-API-Key: sm_your_key Content-Type: application/json

דוגמת cURL

Shell
curl -X GET https://api.smartmoneyapi.com/v1/whales/events \ -H "X-API-Key: sm_your_key" \ -H "Content-Type: application/json"

דוגמת Python

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

אימות אסימון JWT

לסשנים ארוכי טווח ותקשורת שרת-לשרת, החליפו את מפתח ה-API שלכם באסימון JWT. אסימוני JWT תקפים ל-24 שעות ומפחיתים את הצורך לאחסן את מפתח ה-API בקוד היישום.

קבלת אסימון JWT

שלחו את מפתח ה-API שלכם בכתובת ה-JWT כדי לקבל אסימון:

cURL
curl -X POST https://api.smartmoneyapi.com/auth/jwt \ -H "Content-Type: application/json" \ -d '{ "api_key": "sk_live_4e3e4d0f1b2c3d4e5f6g7h8i9j0k1l2m" }'

תגובת JWT

JSON
{ "success": true, "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", "expires_in": 86400, "token_type": "Bearer" }

שימוש באסימון JWT

השתמשו באסימון JWT בכותרת Authorization בדיוק כמו מפתחות API:

Python
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 מיועד ליישומים שצריכים לגשת למספר חשבונות משתמש. משתמשים מעניקים ליישום שלכם הרשאה לגשת לנתונים שלהם מבלי לשתף את מפתחות ה-API שלהם.

זרימת OAuth 2.0

Smart Money API תומך בזרימת Authorization Code עבור יישומי אינטרנט:

  1. המשתמש לוחץ על כפתור "התחבר עם Smart Money"
  2. הדפדפן מפנה לדף הרשאה
  3. המשתמש מעניק הרשאה ליישום שלכם
  4. הדפדפן מפנה בחזרה עם קוד הרשאה
  5. השרת שלכם מחליף את הקוד באסימון גישה
  6. כעת תוכלו לגשת לנתוני המשתמש בשמם

שלב 1: בקשת הרשאה

הפנו את המשתמש לכתובת ההרשאה:

URL
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

שלב 2: החלפת אסימון

לאחר שהמשתמש מעניק הרשאה, החליפו את הקוד באסימון גישה:

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

תגובת אסימון OAuth

JSON
{ "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "token_type": "Bearer", "expires_in": 3600, "refresh_token": "rt_1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p", "scope": "whale_positions funding_rates liquidations" }

שיטות אבטחה מומלצות

אחסון מפתחות בצורה מאובטחת

לעולם אל תכניסו מפתחות API לבקרת גרסאות, תקשרו אותם בקוד היישום או תשתפו אותם בתיעוד. השתמשו במשתני סביבה או בשירותי ניהול מפתחות מאובטחים כמו AWS Secrets Manager, HashiCorp Vault או דומים.

השתמשו ב-HTTPS בלבד

כל בקשות API חייבות להשתמש ב-HTTPS (TLS 1.2 ומעלה). בקשות HTTP יידחו. זה מבטיח שמפתח ה-API והנתונים שלכם מוצפנים במעבר.

הגבילו הרשאות מפתח

צרו מפתחות API נפרדים עבור יישומים וסביבות שונים. השתמשו בהיקפים כדי להגביל את הגישה של כל מפתח. אל תשתמשו במפתחות production בפיתוח.

עקבו אחר שימוש במפתחות

בדקו באופן קבוע את השימוש ב-API במסוף שלכם. הגדירו התראות לפעילות חריגה או למכסה המתקרבת להגבלה. מחקו מפתחות שאינכם משתמשים בהם עוד.

החלפת מפתחות

החליפו את מפתחות ה-API שלכם באופן קבוע כדי להפחית את הסיכון לפריצה. אנו ממליצים להחליף מפתחות כל 90 ימים:

  1. צרו מפתח API חדש במסוף שלכם
  2. עדכן את היישומים שלך לשימוש במפתח החדש
  3. בדוק שהכל עובד כראוי
  4. מחק את המפתח הישן מהקונסולה שלך

היקפים והרשאות

כשיוצרים מפתחות API או משתמשים ב-OAuth, ציין לאילו משאבים המפתח שלך יכול לגשת:

היקף תיאור דרגה
whale_positions קרא נתוני ארנקים של לווייתנים Trader+
funding_rates קרא נתוני שערי מימון Free+
liquidations קרא פידים של נזילות Free+
open_interest קרא נתוני עניין פתוח Trader+
confirmation_scores קרא ציוני אימות AI Pro+
on_chain קרא מדדי על-שרשרת Pro+

דוגמאות קוד לאימות

אינטגרציית Python מלאה

Python
import requests from typing import Optional, Dict from datetime import datetime, timedelta class SmartMoneyAuth: """Handles all authentication methods for 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: """Get or refresh JWT token""" 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: """Get headers for Bearer token auth""" return { "Authorization": f"Bearer {self.api_key}", "Content-Type": "application/json" } def headers_jwt(self) -> Dict: """Get headers for JWT auth""" 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: """Make authenticated request""" 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() # Usage auth = SmartMoneyAuth("sk_live_abc123xyz789") # Bearer token method whales = auth.request("GET", "/v1/whales/events?symbol=BTCUSDT") # JWT method (auto-refreshing) whales_jwt = auth.request("GET", "/v1/whales/events?symbol=BTCUSDT", use_jwt=True) print(f"Found {whales['data']['total']} whale positions")

צריך עזרה?

עיין בתיעוד ה-API שלנו או פנה לתמיכה אם אתה זקוק לעזרה באימות.

הפניית API

צור את מפתח ה-API הראשון שלך

התחל עם Smart Money API. צור חשבון וצור פרטי אימות בתוך דקות.

עבור לקונסולה
התחל בחינם - 100 קריאות/יום, ללא כרטיס

קבל נתוני זרימת לווייתנים, מימון, עניין פתוח ועל-שרשרת בשלושה בורסות מ-API אחד. רמה חינמית, ללא כרטיס אשראי, שדרג מתי שתרצה.

התחל בחינם →
נסה את קונסולת ה-API החיה → (לא נדרש חשבון)
קבל את מפתח ה-API שלך תוך 30 שניות

מוכן לבנות? קבל מפתח API חינמי (100 קריאות/יום, ללא כרטיס) והתחל למשוך נתוני לווייתנים, מימון ועל-שרשרת חיים.

קבל את מפתח ה-API שלך →