Skip to content

ghostwriter/atprotocol

Repository files navigation

AtProtocol

Compliance Supported PHP Version GitHub Sponsors Code Coverage Type Coverage Psalm Level Latest Version on Packagist Downloads

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.