FutureMinds API Documentation

Добро пожаловать в документацию API FutureMinds от Pixeltoo Lab. Этот API позволяет взаимодействовать с постами, комментариями и метриками социальной платформы FutureMinds.

Обзор

API предоставляет доступ к функциональности платформы FutureMinds. Вы можете:

Базовый URL: https://futureminds.pixeltoo.ru/api/postAPI.php

API работает в двух режимах:

Рекомендация: Используйте заголовок User-Agent (например, MyApp/1.0) для идентификации клиента, хотя он не обязателен.

Системный режим

Системный режим используется для внутренних запросов, когда пользователь авторизован на сайте futureminds.pixeltoo.ru. Авторизация проверяется через куки сессии (PHPSESSID).

Особенности

CSRF-токен

CSRF-токен генерируется автоматически в сессии и должен передаваться в POST-запросах (поле csrf_token).

Пример системного запроса

fetch('https://futureminds.pixeltoo.ru/api/postAPI.php?action=get_posts', { credentials: 'include' }) .then(response => response.json()) .then(data => console.log(data));

API-режим

API-режим используется для внешних запросов и требует API-ключ. CSRF-токены не нужны.

Получение API-ключа

  1. Войдите на https://futureminds.pixeltoo.ru/login.php.
  2. Перейдите на https://futureminds.pixeltoo.ru/api/api-keys.php.
  3. Нажмите "Сгенерировать ключ" или скопируйте существующий.
  4. Храните ключ в безопасности!

Использование ключа

Передавайте ключ в заголовке:

Authorization: Bearer ваш_ключ

Пример запроса

curl -H "Authorization: Bearer ваш_ключ" -X POST https://futureminds.pixeltoo.ru/api/postAPI.php?action=like -d "post_id=123&liked=false"
Ошибка 401: Если ключ недействителен, API вернёт: {"success": false, "error": "Invalid API key"}.

Эндпоинты

API поддерживает следующие действия:

Действие Метод Требуется авторизация Описание
get_all_posts GET Нет Получить все посты (JSON)
get_posts GET Нет Получить посты с пагинацией (HTML/JSON)
get_post GET Нет Получить конкретный пост (HTML/JSON)
get_comments GET Нет Получить комментарии к посту (JSON)
search_posts GET Нет Поиск постов по запросу (JSON)
view POST Нет Увеличить счётчик просмотров (JSON)
like POST Да Поставить/убрать лайк (JSON)
add_comment POST Да Добавить комментарий (JSON)
delete_comment POST Да Удалить комментарий (JSON)

get_all_posts

Возвращает все посты в порядке от новых к старым (JSON).

GET /api/postAPI.php?action=get_all_posts

Параметры

Нет параметров.

Примеры запросов

cURL
JavaScript
Python
Postman
curl https://futureminds.pixeltoo.ru/api/postAPI.php?action=get_all_posts
fetch('https://futureminds.pixeltoo.ru/api/postAPI.php?action=get_all_posts') .then(response => response.json()) .then(data => console.log(data));
import requests response = requests.get('https://futureminds.pixeltoo.ru/api/postAPI.php?action=get_all_posts') print(response.json())

Настройте в Postman:

  • Метод: GET
  • URL: https://futureminds.pixeltoo.ru/api/postAPI.php?action=get_all_posts

Тестирование

Пример ответа

{ "success": true, "posts": [ { "post_id": 123, "title": "Пример поста", "content": "Текст поста", "theme": "Общее", "author_id": 456, "media": "[]", "created_at": "2025-04-14 10:00:00", "nick_name": "User1", "avatar": "https://example.com/avatar.jpg", "likes": 10, "views": 100 }, ... ] }

get_posts

Возвращает посты с пагинацией (по 15 постов). В системном режиме — HTML, в API-режиме — JSON (или HTML с параметром format=html).

GET /api/postAPI.php?action=get_posts&last_post_id={id}&format={json|html}

Параметры

Параметр Тип Обязательный Описание
last_post_id integer Нет ID последнего поста для пагинации
format string Нет Формат ответа: json (по умолчанию) или html

Примеры запросов

cURL
JavaScript
Python
curl https://futureminds.pixeltoo.ru/api/postAPI.php?action=get_posts&last_post_id=124&format=json
fetch('https://futureminds.pixeltoo.ru/api/postAPI.php?action=get_posts&last_post_id=124&format=json') .then(response => response.json()) .then(data => console.log(data));
import requests response = requests.get('https://futureminds.pixeltoo.ru/api/postAPI.php?action=get_posts&last_post_id=124&format=json') print(response.json())

Тестирование

Пример ответа (JSON)

{ "success": true, "posts": [ { "post_id": 123, "title": "Пример поста", "content": "Текст поста", "author_id": 456, "media": "[]", "created_at": "2025-04-14 10:00:00", "nick_name": "User1", "avatar": "https://example.com/avatar.jpg", "likes": 10, "views": 100 }, ... ] }

Пример ответа (HTML, системный режим)

{ "success": true, "posts": [ { "post_id": 123, "html": "
...
" }, ... ] }

get_post

Возвращает данные одного поста. В системном режиме — HTML, в API-режиме — JSON (или HTML с format=html).

GET /api/postAPI.php?action=get_post&post_id={id}&format={json|html}

Параметры

Параметр Тип Обязательный Описание
post_id integer Да ID поста
format string Нет Формат ответа: json или html

Примеры запросов

cURL
JavaScript
curl https://futureminds.pixeltoo.ru/api/postAPI.php?action=get_post&post_id=123&format=json
fetch('https://futureminds.pixeltoo.ru/api/postAPI.php?action=get_post&post_id=123&format=json') .then(response => response.json()) .then(data => console.log(data));

Тестирование

Пример ответа (JSON)

{ "success": true, "post": { "post_id": 123, "title": "Пример поста", "content": "Текст поста", "author_id": 456, "media": "[]", "created_at": "2025-04-14 10:00:00", "nick_name": "User1", "avatar": "https://example.com/avatar.jpg", "likes": 10, "views": 100 } }

Пример ответа (HTML)

{ "success": true, "postHtml": "
...
" }

get_comments

Возвращает комментарии к посту (JSON).

GET /api/postAPI.php?action=get_comments&post_id={id}

Параметры

Параметр Тип Обязательный Описание
post_id integer Да ID поста

Примеры запросов

cURL
JavaScript
curl https://futureminds.pixeltoo.ru/api/postAPI.php?action=get_comments&post_id=123
fetch('https://futureminds.pixeltoo.ru/api/postAPI.php?action=get_comments&post_id=123') .then(response => response.json()) .then(data => console.log(data));

Тестирование

Пример ответа

{ "success": true, "comments": [ { "comment_id": 789, "post_id": 123, "author": "User1", "text": "Отличный пост!", "author_id": 456, "created_at": "2025-04-14 10:05:00" }, ... ] }

search_posts

Ищет посты по заголовкам, содержимому и темам (JSON).

GET /api/postAPI.php?action=search_posts&query={text}

Параметры

Параметр Тип Обязательный Описание
query string Да Поисковый запрос (мин. 2 символа)

Примеры запросов

cURL
JavaScript
curl https://futureminds.pixeltoo.ru/api/postAPI.php?action=search_posts&query=Пример
fetch('https://futureminds.pixeltoo.ru/api/postAPI.php?action=search_posts&query=Пример') .then(response => response.json()) .then(data => console.log(data));

Тестирование

Пример ответа

{ "success": true, "posts": [ { "post_id": 123, "title": "Пример поста", "content": "Текст поста", "theme": "Общее", "author_id": 456, "created_at": "2025-04-14 10:00:00" }, ... ] }

view

Увеличивает счётчик просмотров поста (JSON).

POST /api/postAPI.php?action=view

Параметры

Параметр Тип Обязательный Описание
post_id integer Да ID поста
csrf_token string Да (системный режим) CSRF-токен

Примеры запросов

cURL
JavaScript
curl -X POST https://futureminds.pixeltoo.ru/api/postAPI.php?action=view -d "post_id=123"
fetch('https://futureminds.pixeltoo.ru/api/postAPI.php?action=view', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: 'post_id=123' }) .then(response => response.json()) .then(data => console.log(data));

Тестирование

Пример ответа

{ "success": true, "views": 101 }

like

Ставит или убирает лайк для поста. Требуется авторизация.

POST /api/postAPI.php?action=like

Параметры

Параметр Тип Обязательный Описание
post_id integer Да ID поста
liked boolean Да true (убрать лайк), false (поставить)
csrf_token string Да (системный режим) CSRF-токен

Примеры запросов

cURL
JavaScript
curl -H "Authorization: Bearer ваш_ключ" -X POST https://futureminds.pixeltoo.ru/api/postAPI.php?action=like -d "post_id=123&liked=false"
fetch('https://futureminds.pixeltoo.ru/api/postAPI.php?action=like', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'Authorization': 'Bearer ваш_ключ' }, body: 'post_id=123&liked=false' }) .then(response => response.json()) .then(data => console.log(data));

Тестирование

Пример ответа

{ "success": true, "likes": 11 }

add_comment

Добавляет комментарий к посту. Требуется авторизация.

POST /api/postAPI.php?action=add_comment

Параметры

Параметр Тип Обязательный Описание
post_id integer Да ID поста
text string Да Текст комментария (макс. 1000 символов)
csrf_token string Да (системный режим) CSRF-токен

Примеры запросов

cURL
JavaScript
curl -H "Authorization: Bearer ваш_ключ" -X POST https://futureminds.pixeltoo.ru/api/postAPI.php?action=add_comment -d "post_id=123&text=Отличный пост!"
fetch('https://futureminds.pixeltoo.ru/api/postAPI.php?action=add_comment', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'Authorization': 'Bearer ваш_ключ' }, body: 'post_id=123&text=Отличный пост!' }) .then(response => response.json()) .then(data => console.log(data));

Тестирование

Пример ответа

{ "success": true, "comment": { "comment_id": 789, "post_id": 123, "author": "User1", "text": "Отличный пост!", "author_id": 456, "created_at": "2025-04-14 10:05:00" }, "notify": true }

delete_comment

Удаляет комментарий (только автор). Требуется авторизация.

POST /api/postAPI.php?action=delete_comment

Параметры

Параметр Тип Обязательный Описание
comment_id integer Да ID комментария
csrf_token string Да (системный режим) CSRF-токен

Примеры запросов

cURL
JavaScript
curl -H "Authorization: Bearer ваш_ключ" -X POST https://futureminds.pixeltoo.ru/api/postAPI.php?action=delete_comment -d "comment_id=789"
fetch('https://futureminds.pixeltoo.ru/api/postAPI.php?action=delete_comment', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'Authorization': 'Bearer ваш_ключ' }, body: 'comment_id=789' }) .then(response => response.json()) .then(data => console.log(data));

Тестирование

Пример ответа

{ "success": true }