Vai al contenuto principale

Panoramica

Su Bluesky è frequente aver bisogno di risolvere reciprocamente handle, DID, ecc.

Risolvere un DID dall’handle

Tramite API

use Revolution\Bluesky\Facades\Bluesky;

$did = Bluesky::resolveHandle('***.bsky.social')->json('did');

Tramite DNS/well-known

Verifica un record DNS TXT o /.well-known/atproto-did.
use Revolution\Bluesky\Facades\Bluesky;

$did = Bluesky::identity()->resolveHandle('alice.test');
I due metodi sembrano simili ma hanno comportamenti diversi. Quello tramite API interroga il servizio Bluesky via rete, mentre quello tramite DNS/well-known è più adatto a risolvere handle su dominio personalizzato.

Ottenere il DID Document da un DID

resolveDID restituisce il DID Document. https://plc.directory/did:plc:ewvi7nxzyoun6zhxrhs64oiz
use Revolution\Bluesky\Facades\Bluesky;

$didDoc = Bluesky::identity()->resolveDID('did:plc:*** o did:web:***')->json();

Ottenere l’handle dal DID Document

Il campo alsoKnownAs del DID Document contiene l’handle.
use Revolution\Bluesky\Facades\Bluesky;
use Revolution\Bluesky\Support\DidDocument;

$didDoc = DidDocument::make(Bluesky::identity()->resolveDID('did:plc:*** o did:web:***')->json());
$handle = $didDoc->handle();

Risoluzione unificata con resolveIdentity

Con resolveIdentity, che combina resolveHandle e resolveDID, puoi risolvere partendo sia da un DID che da un handle e ottenere il DID Document.
use Revolution\Bluesky\Facades\Bluesky;
use Revolution\Bluesky\Support\DidDocument;

$didDoc = DidDocument::make(Bluesky::identity()->resolveIdentity('did o handle')->json());
$didDoc->id();
$didDoc->handle();

Recupero del profilo pubblico

Il profilo pubblico può essere risolto sia da DID che da handle, e la risposta contiene sia DID che handle.
use Revolution\Bluesky\Facades\Bluesky;

$profile = Bluesky::getProfile('did o handle');
$profile->json('did');
$profile->json('handle');

Ottenere l’URL del PDS / serviceEndpoint

Il serviceEndpoint del DID Document è l’URL del PDS. Raramente lo si usa direttamente, ma se serve puoi ottenerlo.
https://***.***.host.bsky.network
use Revolution\Bluesky\Facades\Bluesky;
use Revolution\Bluesky\Support\DidDocument;

$didDoc = DidDocument::make(Bluesky::identity()->resolveIdentity('did o handle')->json());
$didDoc->pdsUrl();

Ottenere l’URL dell’Authorization Server

Attraverso il PDS risolvi l’URL dell’Authorization Server. Per un account registrato su Bluesky è tipicamente https://bsky.social.
use Revolution\Bluesky\Facades\Bluesky;
use Revolution\Bluesky\Support\DidDocument;

$didDoc = DidDocument::make(Bluesky::identity()->resolveIdentity('did o handle')->json());

$pds = Bluesky::pds()->getProtectedResource($didDoc->pdsUrl());
$pds->authServer();
Ultima modifica il 13 luglio 2026