Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kawax/laravel-mastodon-api
https://github.com/kawax/laravel-mastodon-api
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/kawax/laravel-mastodon-api
- Owner: kawax
- License: mit
- Created: 2017-05-10T07:43:15.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-04-04T07:32:37.000Z (7 months ago)
- Last Synced: 2024-04-15T00:50:16.890Z (7 months ago)
- Language: PHP
- Homepage:
- Size: 55.7 KB
- Stars: 23
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Mastodon API for Laravel
## Requirements
- PHP >= 8.2
- Laravel >= 10.0## Installation
### Composer
```
composer require revolution/laravel-mastodon-api
```## Usage
### Registering an application
#### By Web UI
1. Go to your Mastodon's user preferences page.
2. Go to development page.#### By API
```php
use Revolution\Mastodon\Facades\Mastodon;class MastodonController
{
public function app()
{
$client_name = 'my-app';
$redirect_uris = 'https://my-instance/callback';
$scopes = 'read write follow';
$app_info = Mastodon::domain('https://example.com')
->createApp($client_name, $redirect_uris, $scopes);dd($app_info);
//[
// 'id' => '',
// 'client_id' => '',
// 'client_secret' => '',
//]
}
}
```### OAuth authentication
Use https://github.com/kawax/socialite-mastodonSave account info.(`id`, `token`, `username`, `acct`...and more.)
### Get statuses
```php
use Revolution\Mastodon\Facades\Mastodon;$statuses = Mastodon::domain('https://example.com')
->token('token')
->statuses($account_id);dd($statuses);
```### Get one status
```php
use Revolution\Mastodon\Facades\Mastodon;$status = Mastodon::domain('https://example.com')
->token('token')
->status($status_id);dd($status);
```### Post status
```php
use Revolution\Mastodon\Facades\Mastodon;Mastodon::domain('https://example.com')->token('token');
$response = Mastodon::createStatus('test1');
$response = Mastodon::createStatus('test2', ['visibility' => 'unlisted']);dd($response);
```### Any API by `get` or `post` method
```php
use Revolution\Mastodon\Facades\Mastodon;$response = Mastodon::domain('https://example.com')
->token('token')
->get('/timelines/public', ['local' => true]);
``````php
use Revolution\Mastodon\Facades\Mastodon;$response = Mastodon::domain('https://example.com')
->token('token')
->post('/follows', ['uri' => '']);
```### Any API can call by `call` method
```php
use Revolution\Mastodon\Facades\Mastodon;$response = Mastodon::domain('https://example.com')
->token('token')
->call('DELETE', '/statuses/1');
```### Other methods
Check public methods in `Contracts/Factory.php`## Streaming API
Edit `$token` and `$url` in streaming_example.php```
php ./streaming_example.php
````Ctrl+C` to quit.
## LICENSE
MIT