Saltar al contenido principal

Descripción general

En Bluesky es frecuente necesitar resolver Handles y DIDs entre sí.

Resolver un DID a partir del Handle

Vía API

use Revolution\Bluesky\Facades\Bluesky;

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

Vía DNS/well-known

Consulta el registro DNS TXT o /.well-known/atproto-did.
use Revolution\Bluesky\Facades\Bluesky;

$did = Bluesky::identity()->resolveHandle('alice.test');
Las dos formas son parecidas pero se comportan de manera distinta. La vía API consulta al servicio de Bluesky por red, mientras que la vía DNS/well-known es adecuada para resolver Handles con dominio personalizado.

Obtener el DID Document a partir del DID

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

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

Obtener el Handle desde el DID Document

El campo alsoKnownAs del DID Document contiene el 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();

Resolución unificada con resolveIdentity

Con resolveIdentity, que combina resolveHandle y resolveDID, puedes resolver tanto desde el DID como desde el Handle y obtener el 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();

Obtener el perfil público

El perfil público puede resolverse tanto desde el DID como desde el Handle y la respuesta incluye ambos, DID y Handle.
use Revolution\Bluesky\Facades\Bluesky;

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

Obtener la URL del PDS / serviceEndpoint

El serviceEndpoint del DID Document es la URL del PDS. Rara vez se utiliza directamente, pero puedes obtenerlo cuando lo necesites.
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();

Obtener la URL del Authorization Server

Se resuelve la URL del Authorization Server pasando por el PDS. Para las cuentas registradas en Bluesky suele ser 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();
Última modificación el 13 de julio de 2026