From 6db2c6aabbb3e44ec438f2130f08cb45afdbad35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9=20=D0=9F=D0=B0?= =?UTF-8?q?=D1=86=D1=83=D1=80=D0=B0?= Date: Sun, 14 Sep 2014 23:50:06 +1000 Subject: [PATCH] Added working Vk\Provider --- providers/Vk/Provider.php | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/providers/Vk/Provider.php b/providers/Vk/Provider.php index 6b4bd22ca..14a6c80a4 100644 --- a/providers/Vk/Provider.php +++ b/providers/Vk/Provider.php @@ -6,6 +6,10 @@ namespace SocialConnect\Vk; +use SocialConnect\Auth\Provider\OAuth2\AccessToken; +use SocialConnect\Common\Entity\User; +use SocialConnect\Common\Hydrator\ObjectMap; + class Provider extends \SocialConnect\Auth\Provider\OAuth2\Provider { public function getBaseUri() @@ -22,4 +26,39 @@ public function getRequestTokenUri() { return 'https://api.vk.com/oauth/token'; } + + public function getName() + { + return 'vk'; + } + + /** + * @param $body + * @return AccessToken + */ + public function parseToken($body) + { + $result = \json_decode($body); + + return new AccessToken($result->access_token); + } + + /** + * @param AccessToken $accessToken + * @return User + */ + public function getUser(AccessToken $accessToken) + { + $response = $this->service->getHttpClient()->request($this->getBaseUri() . '/method/users.get?v=5.24&access_token=' . $accessToken->getToken()); + $body = $response->getBody(); + $result = \json_decode($body); + + $hydrator = new ObjectMap(array( + 'id' => 'id', + 'first_name' => 'firstname', + 'last_name' => 'lastname' + )); + + return $hydrator->hydrate(new User(), $result->response[0]); + } }