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.
- => PHP 8.1
- Composer
- Twitter Developer Account
composer require utxo-one/twitter-ultimate-php
The tweet client can be initialized either to get public information, or to perform authenticated actions.
You only need to provide your bearerToken
to initialize a tweet client that accesses public information.
use UtxoOne\TwitterUltimatePhp\Clients\TweetClient;
$client = new TweetClient(bearerToken: $_ENV['TWITTER_BEARER_TOKEN']);
$tweet = $client->getTweet('1272846378268347');
To make an authenticated API call, you need to provide your apiToken
, apiSecret
, accessToken
, accessSecret
.
Access tokens are generated after the user authenticates your app.
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!');
getTweet()
getTweets()
getQuoteTweets()
getLikingUsers()
getRetweetedByUsers()
tweet()
deleteTweet()
likeTweet()
unlikeTweet()
retweet()
unrtweet()
bookmarkTweet()
unbookmarkTweet()
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();
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();
// ...
}
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();
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();
// ...
}
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());
getUserByUsername()
getUserById()
getLikedTweets()
getFollowers()
getFollowing()
follow()
unfollow()
getBlocks()
block()
unblock()
mute()
unmute()
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();
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();
getList()
getUserOwnedLists()
getListTweets()
getListMembers()
getUserMemberships()
getListFollowers()
getUserFollowedLists()
getUserPinnedLists()
createList()
updateList()
deleteList()
addListMember()
removeListMember()
followList()
unfollowList()
pinList()
unpinList()
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();