paulhennell / twitter-account-info
A package to get basic account info like follower count number for a twitter account without requiring a twitter API login.
Fund package maintenance!
paulhennell
Installs: 29
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 1
Open Issues: 2
Language:HTML
Requires
- php: ^8.1
- php-http/client-implementation: ^1.0
- php-http/discovery: ^1.14
- php-http/message-factory: ^1.0
- voku/simple_html_dom: ^4.8
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- guzzlehttp/psr7: ^2.4
- php-http/guzzle7-adapter: ^1.0
- php-http/mock-client: ^1.5
- phpunit/phpunit: ^9.5
- spatie/ray: ^1.28
This package is auto-updated.
Last update: 2024-05-14 11:40:19 UTC
README
This is a basic package to get the number of followers and other basic account info from Twitter without the complications of the official Twitter API. As a non-official project it should not be considered totally reliable, and as of v1.0 this relies on a Nitter instance, so if they all break, this will too.
Abandoned
With twitter cracking down on API and scraping systems, the nitter workaround is so unreliable this package has become unusuable.
Installation
You can install the package via composer:
composer require paulhennell/twitter-account-info
You may require a Http Client library if you don't have one in your project. See here for more.
For a fast fix you can simply install guzzle first like so:
composer require guzzlehttp/psr7
Usage
You use the system by passing in a twitter username
$accountInfo = (new Paulhennell\TwitterAccountInfo())->getFromUsername("hennell_dev"); echo $accountInfo->followers_count; echo $accountInfo->tweet_count; //etc
If your HTTP Client isn't automatically discovered you can pass it into the constructor:
$accountInfo = (new Paulhennell\TwitterAccountInfo($httpClient))->getFromUsername("hennell_dev");
Nitter
As of V1.0 this package relies on scraping the alternative twitter front end Nitter.
Nitter has multiple instances and by default this package will randomly use one of four (see: RandomNitterUrl class).
To specify a specific instance you can pass a url string in with the username:
$accountInfo = (new Paulhennell\TwitterAccountInfo())->getFromUsername("hennell_dev", "https://nitter.net");
For more advance use (like random selection, or running an uptime check to pick a currently working nitter site) you can pass in any class that implements NitterUrlInterface
- which simply needs to return a url string from a static method getUrl
.
You can find a helpful list of possible nitter instances here
Testing
composer test
For client packages be sure to avoid running tests that would execute a web request. Use Mockery to fake the Twitter AccountInfo class and return a manually created AccountInfo object.
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Credits
License
The MIT License (MIT). Please see License File for more information.