Коротка відповідь: Через
requests запросіть presigned URL, завантажте вихідний файл у S3, дочекайтеся обробки, отримайте підключення та викличте документований endpoint із fileId. REST API доступний на Business і Agency.Передумови
- Python 3.10+ і
requests - Business або Agency
- Ключ у
DOHOO_API_KEY - Підключений соціальний акаунт
Перевірений Python-клієнт
import os, time, mimetypes, requests
from pathlib import Path
BASE_URL = "https://dohoo.ai"
API_KEY = os.environ["DOHOO_API_KEY"]
HEADERS = {"X-API-Key": API_KEY}
def upload_file(path):
p = Path(path)
content_type = mimetypes.guess_type(p.name)[0] or "application/octet-stream"
r = requests.post(f"{BASE_URL}/api/upload/presigned-url", headers={**HEADERS,"Content-Type":"application/json"}, json={"filename":p.name,"contentType":content_type})
r.raise_for_status(); slot = r.json()
with p.open("rb") as f:
put = requests.put(slot["uploadUrl"], headers={"Content-Type":content_type}, data=f)
put.raise_for_status(); return slot["fileId"]
def connections():
r=requests.get(f"{BASE_URL}/api/connections/unified",headers=HEADERS); r.raise_for_status(); return r.json()
def publish_instagram(file_id, connection_id, caption):
r=requests.post(f"{BASE_URL}/api/v2/instagram/publish",headers={**HEADERS,"Content-Type":"application/json"},json={"connectionId":connection_id,"fileId":file_id,"caption":caption}); r.raise_for_status(); return r.json()
Що з розкладом
Публічний REST reference описує негайну публікацію. Для scheduledAt і timezone використовуйте DOHOO MCP.
Перевірка
- Викликайте
raise_for_status(). - Не логувати API-ключ.
- Отримуйте ID з
/api/connections/unified. - Перевіряйте ліміти тексту.
Поширені запитання
Чи потрібен SDK?
Ні, достатньо HTTPS, JSON та X-API-Key.
Чи можна планувати з Python?
Так через MCP-клієнт або інший документований планувальник.
Чи можна брати тексти з Google Sheets?
Так, після погодження рядків.
Де зберігати ключ?
У змінній середовища або менеджері секретів.