MetriBeacon
Menü
Deutsch

POST Eine Besitzchallenge für das lokale Plugin erstellen

/api/v1/auth/plugin/bootstrap/challenge

Eine fünfminütige Challenge für das aktuelle Maschinenkonto, den Recovery-Key, das Verwaltungscredential und den registrierten Client erstellen. Es werden keine Rechte erteilt.

Auf dieser Seite

Zugriff und Rechte

Eine fünfminütige Challenge für das aktuelle Maschinenkonto, den Recovery-Key, das Verwaltungscredential und den registrierten Client erstellen. Es werden keine Rechte erteilt.

Maschinen-Verwaltungszugang in Authorization: Bearer. Beachten Sie die von der Operation benötigten Berechtigungen (Scopes).

Parameter und Header

Keine Pfad-, Query- oder zusätzlichen Anfrageheader-Parameter.

Anfragekörper

FeldTyp und GrenzenErforderlichBedeutung
$object; {"additionalProperties":false}Ja—
$.public_keystringJa—
$.client_idstringJa—

Antworten

application/json

FeldTyp und GrenzenErforderlichBedeutung
$objectJa—

application/json

FeldTyp und GrenzenErforderlichBedeutung
$objectJa—

application/json

FeldTyp und GrenzenErforderlichBedeutung
$objectJa—
Stabile Fehlercodes
plugin_identity_required
plugin_identity_required

application/json

FeldTyp und GrenzenErforderlichBedeutung
$objectJa—

application/json

FeldTyp und GrenzenErforderlichBedeutung
$objectJa—

application/json

FeldTyp und GrenzenErforderlichBedeutung
$objectJa—
Stabile Fehlercodes
invalid_request
invalid_request

application/json

FeldTyp und GrenzenErforderlichBedeutung
$objectJa—
Stabile Fehlercodes
plugin_request_rate

application/json

FeldTyp und GrenzenErforderlichBedeutung
$objectJa—

application/json

FeldTyp und GrenzenErforderlichBedeutung
$objectJa—

Wiederholungen und asynchrone Aufträge

Für diese Änderung gibt es keine allgemeine Wiederholungsgarantie. Prüfen Sie bei unklarer Antwort den betroffenen Eintrag, bevor Sie es erneut versuchen. Beachten Sie Wartezeiten aus Retry-After und fordern Sie abgelaufene Anmelde- oder Aktionscodes neu an.

Anfragebeispiele

Ersetzen Sie Demokennungen, Zeitstempel und Platzhalter durch eigene Werte. Behalten Sie bei Wiederholungen Kennungen, Zeit und Inhalt bei. Diese Beispiele führen auf der Seite keine Anfragen aus.

Halten Sie Anmeldelinks, Codes, Cookies und Schlüssel privat. Schreiben Sie sie nicht in Logs und teilen Sie sie nicht in Hilfeanfragen.

shell
curl --silent --show-error --output /dev/null --write-out "%{http_code}\n" \
  --request POST \
  --header @"$HOME/.config/metribeacon/headers.txt" \
  "https://metribeacon.com/api/v1/auth/plugin/bootstrap/challenge"
python
import json
from pathlib import Path
from urllib.request import Request, HTTPRedirectHandler, build_opener
from urllib.error import HTTPError

headers = json.loads((Path.home() / ".config/metribeacon/headers.json").read_text())
request = Request("https://metribeacon.com/api/v1/auth/plugin/bootstrap/challenge", data=None, headers=headers, method="POST")
class NoRedirect(HTTPRedirectHandler):
    def redirect_request(self, request, fp, code, message, headers, target):
        return None

opener = build_opener(NoRedirect())
try:
    with opener.open(request, timeout=10) as response:
        print(response.status)
except HTTPError as error:
    print(error.code)
    error.close()
javascript
import { readFile } from "node:fs/promises";
import { homedir } from "node:os";
import { join } from "node:path";

const headers = JSON.parse(await readFile(join(homedir(), ".config/metribeacon/headers.json"), "utf8"));
const response = await fetch("https://metribeacon.com/api/v1/auth/plugin/bootstrap/challenge", {
  method: "POST", headers, redirect: "manual",
  signal: AbortSignal.timeout(10000),
});
console.log(response.status);
await response.body?.cancel();
go
package main

import (
  "fmt"
  "net/http"
  "time"
  "encoding/json"
  "os"
  "path/filepath"
)

func main() {
  home, err := os.UserHomeDir(); if err != nil { panic("request failed; credentials and response omitted") }
  raw, err := os.ReadFile(filepath.Join(home, ".config/metribeacon/headers.json")); if err != nil { panic("request failed; credentials and response omitted") }
  var headers map[string]string
  if json.Unmarshal(raw, &headers) != nil { panic("invalid local headers") }
  request, err := http.NewRequest("POST", "https://metribeacon.com/api/v1/auth/plugin/bootstrap/challenge", nil)
  if err != nil { panic("request failed; credentials and response omitted") }
  for name, value := range headers { request.Header.Set(name, value) }
  client := &http.Client{Timeout: 10*time.Second, CheckRedirect: func(*http.Request, []*http.Request) error { return http.ErrUseLastResponse }}
  response, err := client.Do(request)
  if err != nil { panic("request failed; credentials and response omitted") }
  defer response.Body.Close()
  fmt.Println(response.StatusCode)
}
  • HTTP-API, OAuth und MCP

    Finden Sie die Nutzer-API-Endpunkte mit Rechten, Feldern, Beispielen und Antwortformaten.

  • POST Die lokale Plugin-Identität authentifizieren

    Eine signierte Besitzchallenge prüfen. Initialer Zugriff ist auf Katalogleserechte beschränkt; widerrufene oder abgelaufene Verbindungen verlangen Browserfreigabe. Hier zurückgegebene Tokens sind privater Helferzustand und dürfen nie im Chat erscheinen.

  • GET Die aktuelle Plugin-Verbindung lesen

    Die durch diesen Katalog-OAuth-Token bestimmte Verbindung, ihre Rechte, Berechtigungsrevision und E-Mail-Bestätigung lesen.

  • POST E-Mail-Bestätigung oder Plugin-Rechte anfordern

    Eine zehnminütige Browseranfrage für die eigene Verbindung dieses Tokens erstellen. E-Mail-Bestätigung führt Konten nie zusammen; Rechtevorschläge sind auf die fünf Katalogrechte begrenzt und können sich nicht selbst freigeben.