oauth2 twitter
v 1.1.0
Этот пакет обеспечивает поддержку Twitter OAuth 2.0 для клиента OAuth 2.0 PHP League.
Для установки используйте композитор:
composer require smolblog/oauth2-twitter
Использование такое же, как и у клиента OAuth The League, с использованием SmolblogOAuth2ClientProviderTwitter
в качестве провайдера.
<?php
session_start ();
require_once ' vendor/autoload.php ' ;
$ provider = new Smolblog OAuth2 Client Provider Twitter ([
' clientId ' => ' MjVXMnRGVUN5Ym5lcVllcTVKZkk6MTpjaQ ' ,
' clientSecret ' => ' YDPiM-JsC5xU44P2VijGJRB7zdKB1PckCGjOynXGx9HZM7N6As ' ,
' redirectUri ' => ' http://oddevan.test/twitter-test/ ' ,
]);
if (! isset ( $ _GET [ ' code ' ])) {
unset( $ _SESSION [ ' oauth2state ' ]);
unset( $ _SESSION [ ' oauth2verifier ' ]);
// Optional: The default scopes are ‘tweet.read’, ‘users.read’,
// and ‘offline.access’. You can change them like this:
$ options = [
‘scope’ => [
‘tweet.read’,
‘tweet.write’,
‘tweet.moderate.write’,
‘users.read’,
‘follows.read’,
‘follows.write’,
‘offline.access’,
‘space.read’,
‘mute.read’,
‘mute.write’,
‘like.read’,
‘like.write’,
‘list.read’,
‘list.write’,
‘block.read’,
‘block.write’,
‘bookmark.read’,
‘bookmark.write’,
],
];
// If we don't have an authorization code then get one
$ authUrl = $ provider -> getAuthorizationUrl ( $ options );
$ _SESSION [ ' oauth2state ' ] = $ provider -> getState ();
// We also need to store the PKCE Verification code so we can send it with
// the authorization code request.
$ _SESSION [ ' oauth2verifier ' ] = $ provider -> getPkceVerifier ();
header ( ' Location: ' . $ authUrl );
exit;
// Check given state against previously stored one to mitigate CSRF attack
} elseif ( empty ( $ _GET [ ' state ' ]) || ( $ _GET [ ' state ' ] !== $ _SESSION [ ' oauth2state ' ])) {
unset( $ _SESSION [ ' oauth2state ' ]);
exit ( ' Invalid state ' );
} else {
try {
// Try to get an access token (using the authorization code grant)
$ token = $ provider -> getAccessToken ( ' authorization_code ' , [
' code ' => $ _GET [ ' code ' ],
' code_verifier ' => $ _SESSION [ ' oauth2verifier ' ],
]);
// Optional: Now you have a token you can look up a users profile data
// We got an access token, let's now get the user's details
$ user = $ provider -> getResourceOwner ( $ token );
// Use these details to create a new profile
printf ( ' Hello %s! ' , $ user -> getName ());
} catch ( Exception $ e ) {
echo ' <pre> ' ;
print_r ( $ e );
echo ' </pre> ' ;
// Failed to get user details
exit ( ' Oh dear... ' );
}
// Use this to interact with an API on the users behalf
echo $ token -> getToken ();
}
См. CHANGELOG.md
Поддерживается* в рамках проекта Smolblog.
*Из-за нового платного API Twitter проект Smolblog больше не может надежно поддерживать этот плагин. Мы исправим любые проблемы, которые сможем, но больше не можем реагировать на новые функции. Если вы хотите взять на себя активное техническое обслуживание, свяжитесь с нами.
Модифицированная лицензия BSD из 3 пунктов (BSD). Пожалуйста, смотрите файл лицензии для получения дополнительной информации.