diff --git a/Provider/Facebook.php b/Provider/Facebook.php index 761b2c6..a9bb7f0 100644 --- a/Provider/Facebook.php +++ b/Provider/Facebook.php @@ -6,7 +6,9 @@ namespace SocialConnect\OAuth2\Provider; +use SocialConnect\OAuth2\AccessToken; use SocialConnect\Provider\AccessTokenInterface; +use SocialConnect\Provider\Exception\InvalidAccessToken; use SocialConnect\Provider\Exception\InvalidResponse; use SocialConnect\Common\Entity\User; use SocialConnect\Common\Http\Client\Client; @@ -41,6 +43,23 @@ public function getName() return 'facebook'; } + /** + * {@inheritdoc} + */ + public function parseToken($body) + { + if (empty($body)) { + throw new InvalidAccessToken('Provider response with empty body'); + } + + $result = json_decode($body, true); + if ($result) { + return new AccessToken($result); + } + + throw new InvalidAccessToken('Provider response with not valid JSON'); + } + /** * {@inheritdoc} */