Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/utxo-one/twitter-ultimate-php
A complete PHP Wrapper for the Twitter v2 API
https://github.com/utxo-one/twitter-ultimate-php
composer composer-library php php81 phpunit twitter twitter-api twitter-api-v2
Last synced: 3 months ago
JSON representation
A complete PHP Wrapper for the Twitter v2 API
- Host: GitHub
- URL: https://github.com/utxo-one/twitter-ultimate-php
- Owner: utxo-one
- Created: 2022-09-03T17:08:05.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2022-11-08T14:01:43.000Z (about 2 years ago)
- Last Synced: 2024-09-29T20:04:06.416Z (4 months ago)
- Topics: composer, composer-library, php, php81, phpunit, twitter, twitter-api, twitter-api-v2
- Language: PHP
- Homepage:
- Size: 1.38 MB
- Stars: 18
- Watchers: 1
- Forks: 5
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Twitter Ultimate PHP
A complete and opinionated API Wrapper implementation for the Twitter v2 API. Full docblocks for all methods and strict
return types make it easy for developers by providing all the method names and parameters to your IDE.### Prerequisites
- => PHP 8.1
- Composer
- Twitter Developer Account### Installation
```sh
composer require utxo-one/twitter-ultimate-php
```
## Usage### Tweet Client
The tweet client can be initialized either to get public information, or to perform authenticated actions.
#### Public API Calls
You only need to provide your `bearerToken` to initialize a tweet client that accesses public information.
```php
use UtxoOne\TwitterUltimatePhp\Clients\TweetClient;$client = new TweetClient(bearerToken: $_ENV['TWITTER_BEARER_TOKEN']);
$tweet = $client->getTweet('1272846378268347');
```
#### Authenticated API CallsTo make an authenticated API call, you need to provide your `apiToken` , `apiSecret`, `accessToken`, `accessSecret`.
Access tokens are generated after the user authenticates your app.```php
use UtxoOne\TwitterUltimatePhp\Clients\TweetClient;$client = new TweetClient(
apiKey: $_ENV['TWITTER_API_KEY'],
apiSecret: $_ENV['TWITTER_API_SECRET'],
accessToken: $_ENV['TWITTER_ACCESS_TOKEN'],
accessSecret: $_ENV['TWITTER_ACCESS_SECRET'],
);$tweet = $client->tweet('Hello World!');
```#### Available Tweet Client Methods:
- `getTweet()`
- `getTweets()`
- `getQuoteTweets()`
- `getLikingUsers()`
- `getRetweetedByUsers()`
- `tweet()`
- `deleteTweet()`
- `likeTweet()`
- `unlikeTweet()`
- `retweet()`
- `unrtweet()`
- `bookmarkTweet()`
- `unbookmarkTweet()`#### Get Tweet Details
```php
use UtxoOne\TwitterUltimatePhp\Clients\TweetClient;$client = new TweetClient(bearerToken: $_ENV['TWITTER_BEARER_TOKEN']);
$tweet = $client->getTweet('1565628118001455105');// Available Getter Methods.
$tweet->getId();
$tweet->getText();
$tweet->getCreatedAt();
$tweet->getAuthorId();
$tweet->getConversationId();
$tweet->getInReplyToUserId();
$tweet->getLang();
$tweet->getSource();
$tweet->isWithheld();
$tweet->getPublicMetricS();
$tweet->getReplySettings();
$tweet->getReferencedTweets();
$tweet->getEntities();
$tweet->getGeo();
$tweet->getContextAnnotations();
$tweet->isPossiblySensitive();
$tweet->getAttachements();
```
#### Get Multiple Tweet Details```php
use UtxoOne\TwitterUltimatePhp\Clients\TweetClient;$client = new TweetClient(bearerToken: $_ENV['TWITTER_BEARER_TOKEN']);
$tweets = $client->getTweets(['1565628118001455105', '1565999511536914433'])->all();foreach($tweets as $tweet) {
$tweet->getId();
// ...
}
```
### User Management Methods##### Getting a User's Details
```php
use UtxoOne\TwitterUltimatePhp\Clients\UserClient;
$client = new UserClient(bearerToken: $_ENV['TWITTER_BEARER_TOKEN']);
$user = $client->getUserByUsername('utxoone');
$user->getId();
$user->getName();
$user->getUsername();
$user->getCreatedAt();
$user->getDescription();
$user->getLocation();
$user->getPinnedTweetId();
$user->getProfileImageUrl();
$user->getUrl();
$user->isVerified();
$user->isProtected();
$user->getEntities();
```##### Getting a User's Liked Tweets
```php
use UtxoOne\TwitterUltimatePhp\Clients\UserClient;
$client = new UserClient(bearerToken: $_ENV['TWITTER_BEARER_TOKEN']);
$user = $client->getUserByUsername('utxoone');
$likedTweets = $client->getLikedTweets($user->getId())->all();foreach ($likedTweets as $likedTweet) {
$likedTweet->getId();
$likedTweet->getText();
// ...
}
```
#### Follow a User```php
use UtxoOne\TwitterUltimatePhp\Clients\UserClient;$client = new UserClient(
apiKey: $_ENV['TWITTER_API_KEY'],
apiSecret: $_ENV['TWITTER_API_SECRET'],
accessToken: $_ENV['TWITTER_ACCESS_TOKEN'],
accessSecret: $_ENV['TWITTER_ACCESS_SECRET'],
);$user = $client->getUserByUsername('utxo_one');
$tweet = $client->follow($user->getId());```
##### Available Methods
- `getUserByUsername()`
- `getUserById()`
- `getLikedTweets()`
- `getFollowers()`
- `getFollowing()`
- `follow()`
- `unfollow()`
- `getBlocks()`
- `block()`
- `unblock()`
- `mute()`
- `unmute()`### List Management Methods
##### Getting a List's Details
```php
use UtxoOne\TwitterUltimatePhp\Clients\ListClient;
$client = new ListClient(bearerToken: $_ENV['TWITTER_BEARER_TOKEN']);
$list = $client->getList('64651656516516516');
$list->getId();
$list->getFollowerCount();
$list->getCreatedAt();
$list->getMemberCount();
$list->isPrivate();
$list->getDescription();
$list->getOwnerId();```
#### Create a List
```php
use UtxoOne\TwitterUltimatePhp\Clients\ListClient;$client = new ListClient(
apiKey: $_ENV['TWITTER_API_KEY'],
apiSecret: $_ENV['TWITTER_API_SECRET'],
accessToken: $_ENV['TWITTER_ACCESS_TOKEN'],
accessSecret: $_ENV['TWITTER_ACCESS_SECRET'],
);$list = $client->createList(
name: 'My New List',
description: 'My New List Description',
private: false,
);$list->getId();
```
#### Available Methods
- `getList()`
- `getUserOwnedLists()`
- `getListTweets()`
- `getListMembers()`
- `getUserMemberships()`
- `getListFollowers()`
- `getUserFollowedLists()`
- `getUserPinnedLists()`
- `createList()`
- `updateList()`
- `deleteList()`
- `addListMember()`
- `removeListMember()`
- `followList()`
- `unfollowList()`
- `pinList()`
- `unpinList()`### Space Management Methods
##### Getting a Space's Details
```php
use UtxoOne\TwitterUltimatePhp\Clients\SpaceClient;
$client = new SpaceClient(bearerToken: $_ENV['TWITTER_BEARER_TOKEN']);
$space = $client->getSpace('64651656516516516');
$space->getId();
$space->getTitle();
$space->getCreatedAt();
$space->getUpdatedAt();
$space->getHostIds();
$space->getState();
$space->isTicketed();
$space->getLand();
$space->getCreatorId();```