socialweb/atproto

A PHP library for integrating with and communicating over the AT Protocol

Fund package maintenance!
ramsey

0.1.0-alpha.1 2023-04-30 03:36 UTC

README

A PHP library for integrating with and communicating over the AT Protocol

Source Code Download Package PHP Programming Language Read License Build Status Codecov Code Coverage Psalm Type Coverage

About

🚨 DANGER, WILL ROBINSON!
This library is extremely, very rough. I'd love to get your input and help, though, which is why I'm putting it out very, very, very early. If you're Interested in helping develop this, please feel free to open an issue, open a pull request, or contact me with any questions.

This project adheres to a code of conduct. By participating in this project and its community, you are expected to uphold this code.

Installation

Install this package as a dependency using Composer.

composer require socialweb/atproto

Usage

// This is very rough and in no way represents the final recommended
// usage of this library.
use SocialWeb\Atproto\Api\Client;

$client = new Client('https://bsky.social');
$client->login('YOUR_EMAIL_ADDRESS', 'YOUR_PASSWORD');

$homeFeed = $client->getTimeline()->feed;

foreach ($homeFeed as $item) {
    echo "{$item->post->author->displayName} (@{$item->post->author->handle}) says:\n\n";
    echo "{$item->post->record->text}\n\n";

    if (isset($item->post->record->reply)) {
        echo "in reply to {$item->post->record->reply->parent->uri}\n\n";
    }

    echo str_repeat('-', 72);
    echo "\n\n";
}

Contributing

Contributions are welcome! To contribute, please familiarize yourself with CONTRIBUTING.md.

Coordinated Disclosure

Keeping user information safe and secure is a top priority, and we welcome the contribution of external security researchers. If you believe you've found a security issue in software that is maintained in this repository, please read SECURITY.md for instructions on submitting a vulnerability report.

Copyright and License

socialweb/atproto is copyright © Ben Ramsey and licensed for use under the terms of the GNU Lesser General Public License (LGPL-3.0-or-later) as published by the Free Software Foundation. Please see COPYING.LESSER, COPYING, and NOTICE for more information.