Pāriet uz saturu
ShopentlyLearn

Komentārs

Lasīt komentārus un moderēšanas statusu

GET/api/v1/addons/shopently.blog/comments/{comment_id}

Autentifikācija
Bearer
Pieejams no
BASIC
Nepieciešamais instalētais modulis
shopently.blog · Moduļa līguma versija 1
Nepieciešamās atļaujas
addon.shopently.blog:comment_read

Koda piemēri

Pieprasījuma piemērs

cURL

: "${SHOPENTLY_SHOP_URL:?}"

curl --disable --globoff --fail-with-body --silent --show-error \
  --proto '=https' --connect-timeout 5 --max-time 30 \
  --request GET \
  --header "Authorization: Bearer ${SHOPENTLY_ACCESS_TOKEN:?}" \
  --url "${SHOPENTLY_SHOP_URL%/}"/api/v1/addons/shopently.blog/comments/2247b58d-1521-4fc0-9eec-6c47c259c181

PHP

<?php
declare(strict_types=1);

$baseUrl = rtrim(getenv('SHOPENTLY_SHOP_URL') ?: '', '/');
$origin = parse_url($baseUrl);
if (!$origin || ($origin['scheme'] ?? '') !== 'https' || empty($origin['host']) ||
    isset($origin['user'], $origin['pass']) || isset($origin['user']) || isset($origin['path']) ||
    isset($origin['query']) || isset($origin['fragment'])) {
    throw new RuntimeException('SHOPENTLY_SHOP_URL must be an HTTPS origin');
}
$credential = getenv('SHOPENTLY_ACCESS_TOKEN') ?: '';
if ($credential === '' || strpbrk($credential, "\r\n") !== false) {
    throw new RuntimeException('Invalid credential');
}
$headers = [];
$headers[] = 'Authorization: Bearer ' . $credential;
$responseHeaders = [];
$handle = curl_init($baseUrl . '/api/v1/addons/shopently.blog/comments/2247b58d-1521-4fc0-9eec-6c47c259c181');
curl_setopt_array($handle, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_FOLLOWLOCATION => false,
    CURLOPT_PROTOCOLS => CURLPROTO_HTTPS,
    CURLOPT_SSL_VERIFYPEER => true,
    CURLOPT_SSL_VERIFYHOST => 2,
    CURLOPT_CONNECTTIMEOUT => 5,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HEADERFUNCTION => static function ($handle, string $line) use (&$responseHeaders): int {
        if (str_contains($line, ':')) {
            [$name, $value] = explode(':', $line, 2);
            $responseHeaders[strtolower(trim($name))] = trim($value);
        }
        return strlen($line);
    },
]);
$raw = curl_exec($handle);
$status = curl_getinfo($handle, CURLINFO_RESPONSE_CODE);
$error = curl_error($handle);
curl_close($handle);
if ($raw === false) {
    throw new RuntimeException('Transport error: ' . $error);
}
if ($status < 200 || $status >= 300) {
    throw new RuntimeException('HTTP ' . $status . '; request_id=' .
        ($responseHeaders['x-request-id'] ?? '') . '; retry_after=' . ($responseHeaders['retry-after'] ?? ''));
}
$result = $raw === '' ? null : json_decode($raw, true, 512, JSON_THROW_ON_ERROR | JSON_BIGINT_AS_STRING);
echo json_encode($result, JSON_THROW_ON_ERROR | JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE), PHP_EOL;

Python

from contextlib import ExitStack
import json
import os
from urllib.parse import urlsplit

import requests  # python -m pip install requests

base_url = os.environ["SHOPENTLY_SHOP_URL"].rstrip("/")
origin = urlsplit(base_url)
if origin.scheme != "https" or not origin.hostname or origin.username or origin.password or origin.path or origin.query or origin.fragment:
    raise ValueError("SHOPENTLY_SHOP_URL must be an HTTPS origin")
credential = os.environ['SHOPENTLY_ACCESS_TOKEN']
if not credential or "\r" in credential or "\n" in credential:
    raise ValueError("Invalid credential")
headers = {}
headers["Authorization"] = 'Bearer' + " " + credential
body = None
if body is not None:
    headers["Content-Type"] = "application/json"

with ExitStack() as stack:
    session = stack.enter_context(requests.Session())
    files = None
    if False:
        image = stack.enter_context(open(os.environ["SHOPENTLY_IMAGE_FILE"], "rb"))
        if os.fstat(image.fileno()).st_size > 5242880:
            raise ValueError("Image exceeds 5 MiB")
        files = {"file": ("article.png", image, "image/png")}
    response = session.request(
        'GET', base_url + '/api/v1/addons/shopently.blog/comments/2247b58d-1521-4fc0-9eec-6c47c259c181', headers=headers,
        data=body.encode("utf-8") if body is not None else None, files=files,
        timeout=(5, 30), allow_redirects=False,
    )
    if not 200 <= response.status_code < 300:
        raise RuntimeError(f"HTTP {response.status_code}; request_id={response.headers.get('X-Request-ID', '')}; retry_after={response.headers.get('Retry-After', '')}")
    if False:
        if response.headers.get("Content-Type") != "image/webp" or len(response.content) > 5242880:
            raise ValueError("Unexpected image response")
        with open(os.environ["SHOPENTLY_OUTPUT_FILE"], "xb") as output:
            output.write(response.content)
    else:
        result = response.json() if response.content else None
        print(json.dumps(result, ensure_ascii=False, indent=2))

Atbildes piemērs 200

JSON
{
  "data": {
    "actor_id": "api_key_7da1addab52348fcbf1284d01a152ebb",
    "actor_kind": "api",
    "body": "Zapraszamy do zadawania pytań.",
    "created_at": "2026-10-07T23:17:44.892022Z",
    "display_name": "Redakcja",
    "edited_at": null,
    "id": "2247b58d-1521-4fc0-9eec-6c47c259c181",
    "locale": "pl",
    "moderation_reason": null,
    "post_id": "2103ba96-2713-420b-b197-8a008730c851",
    "status": "approved",
    "updated_at": "2026-10-07T23:17:44.892022Z",
    "version": 1
  },
  "meta": {
    "request_id": "c29e8186-8b51-4f6a-9479-f6a0be76cc23"
  }
}

Pārskats

Veidojiet veikala blogu ar HTML rakstiem, fotoattēliem, autoriem un meklētājprogrammu metadatiem. Saglabājiet melnrakstus, sagatavojiet tulkojumus un publicējiet uzreiz vai izvēlētā laikā noteiktā laika joslā. Pārvaldiet komentārus un moderēšanu panelī; ārējs ģenerators var izmantot API ar piešķirtajām tiesībām.

BASIC · api.enabled · addons.use(shopently.blog) · addon.shopently.blog:comment_read

Parametri

Ceļa parametri

comment_idVirkneObligāts

Resursa identifikators; saglabājiet to atgrieztajā formā.

format: "uuid"
Piemērs: "2247b58d-1521-4fc0-9eec-6c47c259c181"

Šī darbība nepieņem JSON saturu.

Atbildes

Atbilde 200

dataObjektsPapildu lauki: NēObligāts

Veiksmīgas atbildes dati.

Lauki · data
actor_idVirkneObligāts

Darbības veicēja identifikators

minLength: 1maxLength: 63
actor_kindVirkneObligāts

Darbības veicēja veids

Ierobežojumi
enum
["administrator", "customer", "api"]
bodyVirkneObligāts

Komentārs

minLength: 1maxLength: 5000
created_atVirkneObligāts

Izveides laiks.

format: "date-time"
display_nameVirkneObligāts

Vārds

minLength: 1maxLength: 160
edited_atVirkne nullObligāts

Rediģēts

Virkne:format: "date-time"
idVirkneObligāts

Resursa identifikators; saglabājiet to atgrieztajā formā.

format: "uuid"
localeVirkneObligāts

Šim pieprasījumam izvēlētā valoda.

minLength: 2maxLength: 35
Ierobežojumi
pattern
"^[a-zA-Z]{2,3}(?:-[a-zA-Z0-9]{2,8})*$"
moderation_reasonVirkne nullObligāts

Moderēšanas iemesls

Virkne:maxLength: 500
post_idVirkneObligāts

Raksts

format: "uuid"
statusVirkneObligāts

Šai konkrētajai darbībai pieņemamais statuss.

Ierobežojumi
enum
["pending", "approved", "rejected", "spam"]
updated_atVirkneObligāts

Pēdējās atjaunināšanas laiks.

format: "date-time"
versionVesels skaitlisObligāts

Resursa versija vienlaicīgu izmaiņu kontrolei.

minimum: 1maximum: 9223372036854775807
metaObjektsPapildu lauki: NēObligāts

Atbildes metadati.

Lauki · meta
request_idVirkneObligāts

Pieteikuma identifikators; atbildes metadatos tas identificē HTTP pieprasījumu.

minLength: 1maxLength: 100
Atbildes piemērs

HTTP statuss

200
Veiksmīga atbilde Shēma
400
Nederīgs pieprasījums
401
Nepieciešama autentifikācija
403
Piekļuve liegta
404
Resurss nav atrasts
409
Versiju konflikts
422
Validācijas kļūda
429
Pārsniegts pieprasījumu limits
Citi HTTP statusi (7)
405
Metode nav atļauta
413
Pieprasījums ir pārāk liels
415
Neatbalstīts formāts
500
Servera kļūda
502
API vārtejas kļūda
503
Pakalpojums nav pieejams
504
Noildze

Kļūdu katalogs: ErrorResponse

Galvenes

401

WWW-AuthenticateVirkneNeobligāts

Servera pieprasītā autentifikācijas shēma.

405

AllowVirkneNeobligāts

Šī resursa atbalstītās HTTP metodes.

429, 503

Retry-AfterVesels skaitlisNeobligāts

Minimālā aizkave pirms atkārtošanas sekundēs.

minimum: 0