Last active
January 14, 2017 20:01
-
-
Save AhmedSamy/16c3fe52330fdfcf9653608f345483a4 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace OAuth\OAuth1\Service; | |
use OAuth\OAuth1\Signature\SignatureInterface; | |
use OAuth\OAuth1\Token\StdOAuth1Token; | |
use OAuth\Common\Http\Exception\TokenResponseException; | |
use OAuth\Common\Http\Uri\Uri; | |
use OAuth\Common\Consumer\CredentialsInterface; | |
use OAuth\Common\Http\Uri\UriInterface; | |
use OAuth\Common\Storage\TokenStorageInterface; | |
use OAuth\Common\Http\Client\ClientInterface; | |
class Garmin extends AbstractService | |
{ | |
public function __construct( | |
CredentialsInterface $credentials, | |
ClientInterface $httpClient, | |
TokenStorageInterface $storage, | |
SignatureInterface $signature, | |
UriInterface $baseApiUri = null | |
) { | |
parent::__construct($credentials, $httpClient, $storage, $signature, $baseApiUri); | |
if (null === $baseApiUri) { | |
$this->baseApiUri = new Uri('https://bitbucket.org/api/1.0/'); | |
} | |
} | |
/** | |
* {@inheritDoc} | |
*/ | |
public function getRequestTokenEndpoint() | |
{ | |
return new Uri('http://connectapitest.garmin.com/oauth-service-1.0/oauth/request_token'); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function getAuthorizationEndpoint() | |
{ | |
return new Uri('http://connecttest.garmin.com/oauthConfirm'); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function getAccessTokenEndpoint() | |
{ | |
return new Uri('http://connectapitest.garmin.com/oauth-service-1.0/oauth/access_token'); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
protected function parseRequestTokenResponse($responseBody) | |
{ | |
parse_str($responseBody, $data); | |
if (null === $data || !is_array($data)) { | |
throw new TokenResponseException('Unable to parse response.'); | |
} elseif (!isset($data['oauth_callback_confirmed']) || $data['oauth_callback_confirmed'] !== 'true') { | |
throw new TokenResponseException('Error in retrieving token.'); | |
} | |
return $this->parseAccessTokenResponse($responseBody); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
protected function parseAccessTokenResponse($responseBody) | |
{ | |
parse_str($responseBody, $data); | |
if (null === $data || !is_array($data)) { | |
throw new TokenResponseException('Unable to parse response.'); | |
} elseif (isset($data['error'])) { | |
throw new TokenResponseException('Error in retrieving token: "' . $data['error'] . '"'); | |
} | |
$token = new StdOAuth1Token(); | |
$token->setRequestToken($data['oauth_token']); | |
$token->setRequestTokenSecret($data['oauth_token_secret']); | |
$token->setAccessToken($data['oauth_token']); | |
$token->setAccessTokenSecret($data['oauth_token_secret']); | |
$token->setEndOfLife(StdOAuth1Token::EOL_NEVER_EXPIRES); | |
unset($data['oauth_token'], $data['oauth_token_secret']); | |
$token->setExtraParams($data); | |
return $token; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace APinnecke\Bundle\OAuthBundle\ServiceFactory; | |
final class ResourceOwners | |
{ | |
// OAuth V1 | |
const BIT_BUCKET = 'BitBucket'; | |
const ETSY = 'Etsy'; | |
const FIT_BIT = 'FitBit'; | |
const FLICKR = 'Flickr'; | |
const SCOOP_IT = 'ScoopeIt'; | |
const TUMBLR = 'Tumblr'; | |
const TWITTER = 'Twitter'; | |
const XING = 'Xing'; | |
const YAHOO = 'Yahoo'; | |
const GARMIN = 'Garmin'; | |
// OAuth V2 | |
const AMAZON = 'Amazon'; | |
const BITLY = 'Bitly'; | |
const BOX = 'Box'; | |
const BUFFER = 'Buffer'; | |
const DAILYMOTION = 'Dailymotion'; | |
const DROPBOX = 'Dropbox'; | |
const FACEBOOK = 'Facebook'; | |
const FOURSQuARE = 'Foursquare'; | |
const GITHUB = 'GitHub'; | |
const GOOGLE = 'Google'; | |
const HARVEST = 'Harvest'; | |
const HEROKU = 'Heroku'; | |
const INSTAGRAM = 'Instagram'; | |
const JAWBONE_UP = 'JawboneUP'; | |
const LINKED_IN = 'LinkedIn'; | |
const MAILCHIMP = 'Mailchimp'; | |
const MICROSOFT = 'Microsoft'; | |
const PAYPAL = 'Paypal'; | |
const POCKET = 'Pocket'; | |
const REDDIT = 'Reddit'; | |
const RUN_KEEPER = 'RunKeeper'; | |
const SALESFORCE = 'Salesforce'; | |
const SOUND_CLOUD = 'SoundCloud'; | |
const SPOTIFY = 'Spotify'; | |
const USTREAM = 'Ustream'; | |
const VKONTAKTE = 'Vkontakte'; | |
const YAMMER = 'Yammer'; | |
private function __construct() | |
{ | |
} | |
public static $all = array( | |
self::BIT_BUCKET => self::BIT_BUCKET, | |
self::ETSY => self::ETSY, | |
self::FIT_BIT => self::FIT_BIT, | |
self::FLICKR => self::FLICKR, | |
self::SCOOP_IT => self::SCOOP_IT, | |
self::TUMBLR => self::TUMBLR, | |
self::TWITTER => self::TWITTER, | |
self::XING => self::XING, | |
self::YAHOO => self::YAHOO, | |
self::AMAZON => self::AMAZON, | |
self::BITLY => self::BITLY, | |
self::BOX => self::BOX, | |
self::BUFFER => self::BUFFER, | |
self::DAILYMOTION => self::DAILYMOTION, | |
self::DROPBOX => self::DROPBOX, | |
self::FACEBOOK => self::FACEBOOK, | |
self::FOURSQuARE => self::FOURSQuARE, | |
self::GITHUB => self::GITHUB, | |
self::GOOGLE => self::GOOGLE, | |
self::HARVEST => self::HARVEST, | |
self::HEROKU => self::HEROKU, | |
self::INSTAGRAM => self::INSTAGRAM, | |
self::JAWBONE_UP => self::JAWBONE_UP, | |
self::LINKED_IN => self::LINKED_IN, | |
self::MAILCHIMP => self::MAILCHIMP, | |
self::MICROSOFT => self::MICROSOFT, | |
self::PAYPAL => self::PAYPAL, | |
self::POCKET => self::POCKET, | |
self::REDDIT => self::REDDIT, | |
self::RUN_KEEPER => self::RUN_KEEPER, | |
self::SALESFORCE => self::SALESFORCE, | |
self::SOUND_CLOUD => self::SOUND_CLOUD, | |
self::SPOTIFY => self::SPOTIFY, | |
self::USTREAM => self::USTREAM, | |
self::VKONTAKTE => self::VKONTAKTE, | |
self::YAMMER => self::YAMMER, | |
self::GARMIN => self::GARMIN, | |
); | |
public static $oauth1 = array( | |
self::BIT_BUCKET => self::BIT_BUCKET, | |
self::ETSY => self::ETSY, | |
self::FIT_BIT => self::FIT_BIT, | |
self::FLICKR => self::FLICKR, | |
self::SCOOP_IT => self::SCOOP_IT, | |
self::TUMBLR => self::TUMBLR, | |
self::TWITTER => self::TWITTER, | |
self::XING => self::XING, | |
self::YAHOO => self::YAHOO, | |
self::GARMIN => self::GARMIN, | |
); | |
public static $oauth2 = array( | |
self::AMAZON => self::AMAZON, | |
self::BITLY => self::BITLY, | |
self::BOX => self::BOX, | |
self::BUFFER => self::BUFFER, | |
self::DAILYMOTION => self::DAILYMOTION, | |
self::DROPBOX => self::DROPBOX, | |
self::FACEBOOK => self::FACEBOOK, | |
self::FOURSQuARE => self::FOURSQuARE, | |
self::GITHUB => self::GITHUB, | |
self::GOOGLE => self::GOOGLE, | |
self::HARVEST => self::HARVEST, | |
self::HEROKU => self::HEROKU, | |
self::INSTAGRAM => self::INSTAGRAM, | |
self::JAWBONE_UP => self::JAWBONE_UP, | |
self::LINKED_IN => self::LINKED_IN, | |
self::MAILCHIMP => self::MAILCHIMP, | |
self::MICROSOFT => self::MICROSOFT, | |
self::PAYPAL => self::PAYPAL, | |
self::POCKET => self::POCKET, | |
self::REDDIT => self::REDDIT, | |
self::RUN_KEEPER => self::RUN_KEEPER, | |
self::SALESFORCE => self::SALESFORCE, | |
self::SOUND_CLOUD => self::SOUND_CLOUD, | |
self::SPOTIFY => self::SPOTIFY, | |
self::USTREAM => self::USTREAM, | |
self::VKONTAKTE => self::VKONTAKTE, | |
self::YAMMER => self::YAMMER, | |
); | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment