Руководства по интеграции
Эксклюзивный стоковый контент для СНГ
Подключение через REST API
Встраивание галереи на сайт
Интеграция с React-приложением
Мобильная интеграция (iOS / Android)
Webhook для уведомлений о лицензиях
Импорт в CMS: WordPress и Bitrix
Примеры кода
JavaScript — REST API
Запрос коллекции клипов
const response = await fetch(
'https://api.stockflow.ru/v3/collections/curated-nature/clips',
{
headers: {
'Authorization': 'Bearer sk_live_4f8a2c9d1e6b3a7f',
'Accept': 'application/json'
}
}
);
const { clips, total, page } = await response.json();
// clips — массив из 24 объектов с полями id, title, duration, formats, licenseUrl
Python — requests
Поиск по ключевым словам
import requests
headers = {
"Authorization": "Bearer sk_live_4f8a2c9d1e6b3a7f",
"Accept": "application/json"
}
params = {
"q": "городская архитектура осень",
"sort": "relevance",
"page_size": 12
}
resp = requests.get(
"https://api.stockflow.ru/v3/search/clips",
headers=headers, params=params
)
results = resp.json()
for clip in results["clips"]:
print(clip["id"], clip["title"], clip["duration_ms"])
React — @stockflow/react-sdk
Компонент галереи
import { useStockClips, ClipCard } from '@stockflow/react-sdk';
function NatureGallery() {
const { clips, loading, error } = useStockClips({
collection: 'curated-nature',
pageSize: 16
});
if (loading) return Загрузка коллекции...
;
if (error) return Ошибка: {error.message}
;
return (
<div className="gallery-grid">
{clips.map(clip => (
<ClipCard key={clip.id} clip={clip} />
))}
</div>
);
}
HTML — Gallery Widget
Быстрая вставка на любую страницу
<script src="https://cdn.stockflow.ru/widget/v2.4/stockflow-gallery.min.js"></script>
<div
id="stockflow-gallery"
data-collection="curated-nature"
data-columns="4"
data-theme="dark"
data-api-key="pk_live_9b3e7f2a8c1d4e6g"
></div>
<script>
StockFlowGallery.init('stockflow-gallery', {
onClipSelect: (clip) => {
console.log('Выбран клип:', clip.id);
}
});
</script>
Swift — StockFlowKit
Загрузка коллекции в iOS
import StockFlowKit
let client = StockFlowClient(apiKey: "sk_live_4f8a2c9d1e6b3a7f")
Task {
do {
let clips = try await client.clips(
collection: "curated-nature",
page: 1,
pageSize: 20
)
for clip in clips.items {
print(clip.id, clip.title, clip.duration)
}
} catch {
print("StockFlow error: \(error)")
}
}
cURL — Webhook-тест
Проверка подписи webhook-события
# Тестовый вызов webhook-эндпоинта
curl -X POST https://your-domain.com/webhooks/stockflow \
-H "Content-Type: application/json" \
-H "X-StockFlow-Signature: hmac-sha256=..." \
-d '{
"event": "license.issued",
"data": {
"clip_id": "clp_8d3f2a1b9c7e",
"license_type": "editorial",
"customer_email": "editor@newsagency.ru"
}
}'