অথেন্টিকেশন গাইড
API কী, JWT টোকেন এবং OAuth 2.0 ব্যবহার করে Smart Money API এর সাথে কীভাবে অথেন্টিকেশন করতে হয় তা শিখুন। শিল্প-মানের অথেন্টিকেশন পদ্ধতি এবং সেরা অনুশীলনগুলির সাথে আপনার ইন্টিগ্রেশনগুলি সুরক্ষিত করুন।
ওভারভিউ
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 কীগুলি আপনার অ্যাকাউন্টে জারি করা অনন্য ক্রেডেনশিয়াল। প্রতিটি কী একটি একক অনুমতি এবং কোটা প্রতিনিধিত্ব করে। আপনি বিভিন্ন অ্যাপ্লিকেশন বা পরিবেশের জন্য একাধিক কী তৈরি করতে পারেন (ডেভেলপমেন্ট, স্টেজিং, প্রোডাকশন)।
একটি API কী তৈরি করা
আপনার অ্যাকাউন্ট কনসোল থেকে API কী তৈরি করুন:
- নেভিগেট করুন Smart Money Console
- সাইডবার থেকে "API কী" নির্বাচন করুন
- "নতুন কী তৈরি করুন" ক্লিক করুন
- কী টাইপ নির্বাচন করুন (ডেভেলপমেন্ট, স্টেজিং, প্রোডাকশন)
- রেট লিমিট এবং ফিচার সেট করুন
- কীটি কপি করুন এবং নিরাপদে সংরক্ষণ করুন
আপনার API কী অবিলম্বে সংরক্ষণ করুন! আপনি এটি আবার দেখতে পারবেন না। যদি আপনি এটি হারিয়ে ফেলেন, তাহলে আপনাকে একটি নতুন কী তৈরি করতে হবে।
কী ফরম্যাট
API কীগুলি একটি স্ট্যান্ডার্ড ফরম্যাট অনুসরণ করে:
sk_live_4e3e4d0f1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z
sk_test_8f4g5h6i7j8k9l0m1n2o3p4q5r6s7t8u9v0w1x2y3z4a5b6c7d8e9f
sk_dev_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b
কী প্রিফিক্সগুলি পরিবেশ নির্দেশ করে:
sk_live_ — সম্পূর্ণ কোটা সহ প্রোডাকশন কী
sk_test_ — হ্রাসকৃত কোটা এবং ডেভেলপমেন্ট ডেটা সহ টেস্টিং কী
sk_dev_ — স্যান্ডবক্স ডেটা সহ ব্যক্তিগত ডেভেলপমেন্ট কী
X-API-Key হেডার (প্রাথমিক)
আপনার API কী পাঠান X-API-Key সমস্ত API অনুরোধের জন্য অনুরোধ হেডারে। আপনার কী কখনই URL এ রাখবেন না।
HTTP হেডার
GET /v1/whales/events HTTP/1.1
Host: api.smartmoneyapi.com
X-API-Key: sm_your_key
Content-Type: application/json
cURL উদাহরণ
curl -X GET https://api.smartmoneyapi.com/v1/whales/events \
-H "X-API-Key: sm_your_key" \
-H "Content-Type: application/json"
পাইথন উদাহরণ
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 টোকেন পাওয়া
JWT এন্ডপয়েন্টে আপনার API কী POST করুন একটি টোকেন পেতে:
curl -X POST https://api.smartmoneyapi.com/auth/jwt \
-H "Content-Type: application/json" \
-d '{
"api_key": "sk_live_4e3e4d0f1b2c3d4e5f6g7h8i9j0k1l2m"
}'
JWT প্রতিক্রিয়া
{
"success": true,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"expires_in": 86400,
"token_type": "Bearer"
}
JWT টোকেন ব্যবহার করা
API কীগুলির মতোই Authorization হেডারে JWT টোকেন ব্যবহার করুন:
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 ফ্লো সমর্থন করে:
- ব্যবহারকারী "Smart Money এর সাথে সংযোগ করুন" বাটনে ক্লিক করুন
- ব্রাউজার অথোরাইজেশন পৃষ্ঠায় রিডাইরেক্ট করে
- ব্যবহারকারী আপনার অ্যাপ্লিকেশনকে অনুমতি দেয়
- ব্রাউজার অথোরাইজেশন কোড সহ ফিরে রিডাইরেক্ট করে
- আপনার ব্যাকএন্ড কোডটি অ্যাক্সেস টোকেনের জন্য বিনিময় করে
- আপনি এখন তাদের পক্ষে ব্যবহারকারীর ডেটা অ্যাক্সেস করতে পারেন
ধাপ 1: অথোরাইজেশন অনুরোধ
ব্যবহারকারীকে অথোরাইজেশন এন্ডপয়েন্টে রিডাইরেক্ট করুন:
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 -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 টোকেন প্রতিক্রিয়া
{
"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 কী তৈরি করুন। প্রতিটি কী কী অ্যাক্সেস করতে পারে তা সীমিত করতে স্কোপ ব্যবহার করুন। ডেভেলপমেন্টে প্রোডাকশন কী ব্যবহার করবেন না।
কী ব্যবহার পর্যবেক্ষণ করুন
নিয়মিত আপনার কনসোলে API ব্যবহার পর্যালোচনা করুন। অস্বাভাবিক কার্যকলাপ বা কোটা সীমার কাছে পৌঁছানোর জন্য অ্যালার্ট সেট আপ করুন। আপনি যে কীগুলি আর ব্যবহার করছেন না সেগুলি মুছে ফেলুন।
কী রোটেশন
আপনার API কীগুলি নিয়মিত রোটেশন করুন যাতে কম্প্রোমাইজের ঝুঁকি হ্রাস পায়। আমরা প্রতি 90 দিনে কী রোটেশন করার পরামর্শ দিই:
- আপনার কনসোলে একটি নতুন API কী তৈরি করুন
- আপনার অ্যাপ্লিকেশনগুলিকে নতুন কী ব্যবহার করার জন্য আপডেট করুন
- পরীক্ষা করুন যে সবকিছু সঠিকভাবে কাজ করছে
- আপনার কনসোল থেকে পুরানো কী মুছে ফেলুন
স্কোপ এবং অনুমতিসমূহ
API কী তৈরি করার সময় বা OAuth ব্যবহার করার সময়, নির্দিষ্ট করুন যে আপনার কী কোন সংস্থানগুলি অ্যাক্সেস করতে পারে:
| স্কোপ |
বিবরণ |
স্তর |
| whale_positions |
হোয়াল ওয়ালেট অবস্থান পড়ুন |
Trader+ |
| funding_rates |
ফান্ডিং রেট ডেটা পড়ুন |
Free+ |
| liquidations |
লিকুইডেশন ফিড পড়ুন |
Free+ |
| open_interest |
ওপেন ইন্টারেস্ট ডেটা পড়ুন |
Trader+ |
| confirmation_scores |
AI কনফার্মেশন স্কোর পড়ুন |
Pro+ |
| on_chain |
অন-চেইন মেট্রিক্স পড়ুন |
Pro+ |
অথেন্টিকেশন কোড উদাহরণ
সম্পূর্ণ পাইথন ইন্টিগ্রেশন
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 দিয়ে শুরু করুন। আপনার অ্যাকাউন্ট তৈরি করুন এবং মিনিটের মধ্যে অথেন্টিকেশন ক্রেডেনশিয়াল তৈরি করুন।
কনসোলে যান