From 4053a993c6ca3f040c937ab2c50fcfbeefe397a3 Mon Sep 17 00:00:00 2001 From: alex kompaniets Date: Wed, 27 Apr 2016 18:28:10 +0300 Subject: [PATCH 1/2] add-weibo-support --- src/services/WeiboOauth2Service.php | 31 +++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/services/WeiboOauth2Service.php diff --git a/src/services/WeiboOauth2Service.php b/src/services/WeiboOauth2Service.php new file mode 100644 index 0000000..477d89e --- /dev/null +++ b/src/services/WeiboOauth2Service.php @@ -0,0 +1,31 @@ + + * @link http://github.com/Nodge/yii2-eauth/ + * @license http://www.opensource.org/licenses/bsd-license.php + */ + +namespace nodge\eauth\services; + + +use nodge\eauth\oauth2\Service; + +class WeiboOauth2Service extends Service +{ + protected $name = 'weibo'; + protected $title = 'Weibo'; + protected $type = 'OAuth2'; + protected $jsArguments = ['popup' => ['width' => 585, 'height' => 290]]; + + protected $scopes = []; + protected $providerOptions = [ + 'authorize' => 'https://api.weibo.com/oauth2/authorize', + 'access_token' => 'https://api.weibo.com/oauth2/access_token', + ]; + protected $baseApiUrl = 'https://api.weibo.com/2/'; +} \ No newline at end of file From 8e6d5b280fdd9133c5b95c4b41336c8461eb1135 Mon Sep 17 00:00:00 2001 From: alex kompaniets Date: Thu, 28 Apr 2016 11:03:09 +0300 Subject: [PATCH 2/2] add-qq-support --- README.md | 7 ++++ src/assets/css/eauth.css | 4 ++ src/assets/images/auth-src.png | Bin 19436 -> 36435 bytes src/assets/images/auth.png | Bin 6329 -> 6605 bytes src/services/WeiboOauth2Service.php | 59 +++++++++++++++++++++++++++- 5 files changed, 68 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e1255d3..d592658 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,7 @@ The implementation of the authorization on your own server has several advantage * VKontake (ru) * Mail.ru (ru) * Odnoklassniki (ru) + * Weibo (cn) ### Resources @@ -217,6 +218,12 @@ Add the following in your config: 'clientPublic' => '...', 'title' => 'Odnoklas.', ], + 'weibo' => [ + // register your app here: http://open.weibo.com/webmaster/add + 'class' => 'nodge\eauth\services\WeiboOAuth2Service', + 'clientId' => '...', + 'clientSecret' => '...', + ], ], ], diff --git a/src/assets/css/eauth.css b/src/assets/css/eauth.css index fb5cb52..a2a9fd9 100644 --- a/src/assets/css/eauth.css +++ b/src/assets/css/eauth.css @@ -100,4 +100,8 @@ .eauth-service-id-instagram .eauth-service-link:before { background-position: 0 -474px; +} + +.eauth-service-id-weibo .eauth-service-link:before { + background-position: 0 -508px; } \ No newline at end of file diff --git a/src/assets/images/auth-src.png b/src/assets/images/auth-src.png index 9c91275677f61abdfc1e1ff33fb3cfa9d3d08b4c..a0c94de50092c340fcd323f87a95ce551e0df384 100644 GIT binary patch literal 36435 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 D diff --git a/src/assets/images/auth.png b/src/assets/images/auth.png index 818f3aaefaee2bdc8651b762509f66a842d8ade5..1c68f2b8a7f434bfe6fec71f36c6207daee31a8f 100644 GIT binary patch literal 6605 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 diff --git a/src/services/WeiboOauth2Service.php b/src/services/WeiboOauth2Service.php index 477d89e..20ea03e 100644 --- a/src/services/WeiboOauth2Service.php +++ b/src/services/WeiboOauth2Service.php @@ -1,11 +1,11 @@ + * @author Maxim Zemskov * @link http://github.com/Nodge/yii2-eauth/ * @license http://www.opensource.org/licenses/bsd-license.php */ @@ -13,10 +13,18 @@ namespace nodge\eauth\services; +use nodge\eauth\ErrorException; use nodge\eauth\oauth2\Service; +use OAuth\OAuth2\Service\ServiceInterface; +use Yii; class WeiboOauth2Service extends Service { + /** + * Scopes @link http://open.weibo.com/wiki/Scope + */ + const SCOPE_ALL = 'all'; + protected $name = 'weibo'; protected $title = 'Weibo'; protected $type = 'OAuth2'; @@ -28,4 +36,51 @@ class WeiboOauth2Service extends Service 'access_token' => 'https://api.weibo.com/oauth2/access_token', ]; protected $baseApiUrl = 'https://api.weibo.com/2/'; + + /** + * {@inheritdoc} + */ + protected function fetchAttributes() + { + $accessTokenData = $this->getAccessTokenData(); + if (isset($accessTokenData['params']['uid'])) { + $this->attributes['id'] = $accessTokenData['params']['uid']; + } else { + throw new ErrorException(Yii::t('eauth', 'Unable to make user info request without uid.')); + } + $info = $this->makeSignedRequest('users/show.json', [ + 'query' => [ + 'uid' => $this->attributes['id'] + ] + ]); + + foreach(['name', 'gender'] as $attr) { + $this->attributes[$attr] = $info[$attr]; + } + $this->attributes['url'] = 'http://www.weibo.com/' . $info['profile_url']; + + return true; + } + + /** + * {@inheritdoc} + */ + public function getAuthorizationMethod() + { + return ServiceInterface::AUTHORIZATION_METHOD_QUERY_STRING; + } + + /** + * {@inheritdoc} + */ + protected function fetchResponseError($response) + { + if (isset($response['error'])) { + return [ + 'code' => $response['error_code'], + 'message' => $response['error'], + ]; + } + return null; + } } \ No newline at end of file