atproto / atproto
Bluesky API Client for AT Protocol
0.1.x-dev
2026-06-04 07:24 UTC
Requires
- php: ~8.4.0 || ~8.5.0 || ~8.6.0
- ext-curl: *
- ext-mbstring: *
- ghostwriter/case-converter: ^2.2.2
- ghostwriter/collection: ^2.1.0
- ghostwriter/config: ^2.1.3
- ghostwriter/container: ^7.0.2
- ghostwriter/event-dispatcher: ^6.1.3
- ghostwriter/http: ^0.2.0
- ghostwriter/json: ^3.0.2
- ghostwriter/option: ^2.0.0
- ghostwriter/result: ^2.0.0
- ghostwriter/uuid: ^1.0.3
Requires (Dev)
- ext-xdebug: *
- boundwize/structarmed: ^0.11.0
- ghostwriter/coding-standard: dev-main
- ghostwriter/filesystem: ^0.2.0
- ghostwriter/phpunit-assertions: ^0.1.0
- ghostwriter/testify: ^0.1.2
- mockery/mockery: ^1.6.12
- nikic/php-parser: ^5.7.0
- phpunit/phpunit: ^13.1.14
- symfony/var-dumper: ^8.1.0
Replaces
- 1.0.x-dev
- 0.2.x-dev
- 0.1.x-dev
- dev-phpunit-configuration
- dev-composer-phpunit-phpunit-13.1.14
- dev-submodules-resources-bluesky-social-atproto-41a561e
- dev-submodules-resources-bluesky-social-atproto-6c63f7d
- dev-submodules-resources-bluesky-social-atproto-ef4e677
- dev-composer-boundwize-structarmed-0.11.0
- dev-submodules-resources-bluesky-social-atproto-7f5c4ce
- dev-composer-boundwize-structarmed-0.10.1
- dev-composer-guzzlehttp-guzzle-7.11.0
- dev-composer-guzzlehttp-psr7-2.11.0
- dev-composer-guzzlehttp-promises-2.5.0
- dev-submodules-resources-bluesky-social-atproto-8f0c19f
- dev-composer-boundwize-structarmed-0.10.0
- dev-composer-phpunit-php-code-coverage-14.1.10
- dev-composer-sebastian-global-state-9.0.1
- dev-composer-guzzlehttp-guzzle-7.10.6
- dev-composer-boundwize-structarmed-0.9.5
- dev-composer-configuration
- dev-composer-boundwize-structarmed-0.9.4
- dev-composer-ghostwriter-coding-standard-dev-main
- dev-gitattributes
- dev-composer-boundwize-structarmed-0.9.3
- dev-readme
- dev-security
- dev-funding
- dev-composer-boundwize-structarmed-0.9.2
- dev-composer-ghostwriter-event-dispatcher-6.1.3
- dev-composer-ghostwriter-event-dispatcher-6.1.2
- dev-submodules-resources-bluesky-social-atproto-22de65e
- dev-submodules-resources-bluesky-social-atproto-8a9e757
- dev-composer-boundwize-structarmed-0.9.1
- dev-submodules-resources-bluesky-social-atproto-3cb2a41
- dev-composer-boundwize-structarmed-0.9.0
- dev-composer-boundwize-structarmed-0.8.7
- dev-composer-guzzlehttp-psr7-2.10.4
- dev-composer-symfony-console-8.1.0
- dev-composer-symfony-string-8.1.0
- dev-composer-symfony-var-dumper-8.1.0
- dev-composer-boundwize-structarmed-0.8.6
- dev-submodules-resources-bluesky-social-atproto-0ac21bb
- dev-composer-boundwize-structarmed-0.8.1
- dev-submodules-resources-bluesky-social-atproto-5b43753
- dev-main
This package is auto-updated.
Last update: 2026-06-04 07:26:04 UTC
README
Warning
This project is not finished yet, work in progress.
Installation
You can install the package via composer:
composer require ghostwriter/atprotocol
Usage
Auth
Info
Use app passwords to securely login to Bluesky without giving full access to your account or password. https://bsky.app/settings/app-passwords
$bsky = new Bluesky(personalDataServer: 'https://bsky.social'); // create a new account on the server $sessionData = $bsky->createAccount( email: 'nathanael.esayeas@protonmail.com', handle: 'codepoet.bsky.social', password: '************' inviteCode: 'black-lives-matter', ); // if an existing session (accessed with 'bsky.session') was securely stored previously, then reuse that $bsky->resumeSession(session: $sessionData); // if no old session was available, create a new one by logging in with password (App Password) $sessionData = $bsky->login( identifier: 'codepoet.bsky.social', password: '************' ); $bsky->post(text: 'My first post using ghostwriter/atprotocol for PHP.'); // Feeds and content $bsky->getTimeline($params,$opts) $bsky->getAuthorFeed($params,$opts) $bsky->getPostThread($params,$opts) $bsky->getPost($params) $bsky->getPosts($params,$opts) $bsky->getLikes($params,$opts) $bsky->getRepostedBy($params,$opts) $bsky->post($record) $bsky->deletePost($postUri) $bsky->like($uri, cid) $bsky->deleteLike($likeUri) $bsky->repost($uri, cid) $bsky->deleteRepost($repostUri) $bsky->uploadBlob($data,$opts) // Social graph $bsky->getFollows($params,$opts) $bsky->getFollowers($params,$opts) $bsky->follow($did) $bsky->deleteFollow($followUri) // Actors $bsky->getProfile($params,$opts) $bsky->upsertProfile($updateFn) $bsky->getProfiles($params,$opts) $bsky->getSuggestions($params,$opts) $bsky->searchActors($params,$opts) $bsky->mute($did) $bsky->unmute($did) $bsky->muteModList($listUri) $bsky->unmuteModList($listUri) $bsky->blockModList($listUri) $bsky->unblockModList($listUri) // Notifications $bsky->listNotifications($params,$opts) $bsky->countUnreadNotifications($params,$opts) $bsky->updateSeenNotifications() // Identity $bsky->resolveHandle($params,$opts) $bsky->updateHandle($params,$opts) // Session management $bsky->createAccount($params) $bsky->login($params) $bsky->resumeSession($session) // Excepions // { "name": "InvalidHandle" }, // { "name": "InvalidPassword" }, // { "name": "InvalidInviteCode" }, // { "name": "HandleNotAvailable" }, // { "name": "UnsupportedDomain" }, // { "name": "UnresolvableDid" }, // { "name": "IncompatibleDidDoc" } // TODO: extract the headers from the lexicon objects
Changelog
Please see CHANGELOG.md for more information on what has changed recently.
Security
If you discover any security-related issues, please use Security Advisories instead of using the issue tracker.
Credits
License
The BSD-3-Clause. Please see License File for more information.