Extended Instagram OAuth 2.0 Client Provider for The PHP League's OAuth2 Client
This extends the official The PHP League Instagram provider for the OAuth 2.0 Client. The official provider allows a user to authenticate with OAuth to get a code, and exchange that for a short lived token to access the Instagram API, but this only lasts around an hour and can't be renewed for another short lived token. However, Instagram allows you to swap that short lived token for a long lived token (up to 60 days), and renew that token for as long as you have permissions for that user.
This package extends the provider with new methods, first to swap a short lived token for a long lived one, and second to renew that long lived token.
To install, use composer:
composer require andyhartley/oauth2-instagram
Usage is the same as The League's OAuth client, using
\Hartley\OAuth2\Client\Provider\Instagram as the provider. If you're already using the official provider then you can simply swap the namespace as required.
The additional methods can be called as follows, where
$provider is this provider, and
$accessToken is a League
Getting a long lived Instagram user token from a short lived Instagram user token.
$newAccessToken = $provider->getLongLivedToken([ 'access_token' => $accessToken->getToken(), // this must be a short lived token ]);
Refreshing a long lived Instagram user token from a current long lived Instagram user token.
$newAccessToken = $provider->refreshLongLivedToken([ 'access_token' => $accessToken->getToken(), // this must be a long lived token that is older than 1 day, and no older than 60 days ]);
The MIT License (MIT). The licence is included in this package.
Whilst I've been a professional developer for a decade, this is my first public package. All comments and feedback are welcome.