Skip to content

Instantly share code, notes, and snippets.

@asalkey
Last active August 29, 2015 14:07
Show Gist options
  • Save asalkey/ec14fba152347cd5f40d to your computer and use it in GitHub Desktop.
Save asalkey/ec14fba152347cd5f40d to your computer and use it in GitHub Desktop.
Basecamp provider
<?php use League\OAuth2\Client\Entity\User;
// Basecamp Oauth
class Basecamp extends League\OAuth2\Client\Provider\AbstractProvider {
// Response type
public $responseType = 'json';
public function urlAuthorize()
{
return 'https://launchpad.37signals.com/authorization/new';
}
public function urlAccessToken()
{
return 'https://launchpad.37signals.com/authorization/token?type=web_server';
}
public function urlUserDetails(\League\OAuth2\Client\Token\AccessToken $token)
{
return 'https://launchpad.37signals.com/authorization.json?access_token='.$token;
}
public function userDetails($response, \League\OAuth2\Client\Token\AccessToken $token)
{
$user = new User;
$user->exchangeArray(array(
'uid' => $response->identity->id,
'firstName' => $response->identity->first_name,
'lastName' => $response->identity->last_name,
'email' => $response->identity->email_address
));
return $user;
}
public function userUid($response, \League\OAuth2\Client\Token\AccessToken $token)
{
return $response->identity->id;
}
public function userEmail($response, \League\OAuth2\Client\Token\AccessToken $token)
{
return $response->identity->email_address;
}
public function userScreenName($response, \League\OAuth2\Client\Token\AccessToken $token)
{
return $response->identity->email_address;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment