Skip to content

Commit

Permalink
Start working on Instgram Provider
Browse files Browse the repository at this point in the history
  • Loading branch information
ovr committed Jul 7, 2015
1 parent 1a12e60 commit d6edc69
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 1 deletion.
3 changes: 2 additions & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@
"SocialConnect\\Vk\\": "providers/Vk/",
"SocialConnect\\Github\\": "providers/Github/",
"SocialConnect\\Facebook\\": "providers/Facebook/",
"SocialConnect\\Twitter\\": "providers/Twitter/"
"SocialConnect\\Twitter\\": "providers/Twitter/",
"SocialConnect\\Instagram\\": "providers/Instagram/"
}
}
}
65 changes: 65 additions & 0 deletions providers/Instagram/Provider.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
<?php
/**
* SocialConnect project
* @author: Patsura Dmitry https://github.com/ovr <talk@dmtry.me>
*/

namespace SocialConnect\Instagram;

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()
{
return 'https://api.instagram.com/v1/';
}

public function getAuthorizeUri()
{
return 'https://api.instagram.com/oauth/authorize';
}

public function getRequestTokenUri()
{
return 'https://api.instagram.com/oauth/access_token';
}

public function getName()
{
return 'instagram';
}

/**
* @param $body
* @return AccessToken
*/
public function parseToken($body)
{
$result = json_decode($body);

return new AccessToken($result->access_token);
}

/**
* {@inheritdoc}
*/
public function getIdentity(AccessToken $accessToken)
{
$response = $this->service->getHttpClient()->request($this->getBaseUri() . 'users/self?access_token=' . $accessToken->getToken());
$body = $response->getBody();
$result = json_decode($body);
var_dump($result);

$hydrator = new ObjectMap(array(
'id' => 'id',
'first_name' => 'firstname',
'last_name' => 'lastname',
'email' => 'email'
));

return $hydrator->hydrate(new User(), $result->response[0]);
}
}

0 comments on commit d6edc69

Please sign in to comment.