tehrancode / yahoo-api-bundle
This Bundle is a wrapper around alexandreeffetb/yos-social-php5 for yahoo php SDK
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=5.3.2
- alexandreeffetb/yos-social-php5: 0.*
- symfony/framework-bundle: 2.*
- symfony/yaml: 2.*
Requires (Dev)
This package is not auto-updated.
Last update: 2025-07-05 22:21:28 UTC
README
Symfony2 Yahoo OAuth + OpenID This Bundle is a wrapper around alexandreeffetb/yos-social-php5
Progress Sheet
- This is under construction so Don't use it or at least Debug it first!
- Yahoo does answer OAuth requests from Localhost but It doesn't answer OAuth+OpenID requests
- alexandreeffetb/yos-social-php5 uses:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
in the alexandreeffetb\yos-social-php5\lib\Yahoo\YahooCurl.php
line 112 and some of shared servers have problem with this!so you should comment it probably or ...
Requirements
alexandreeffetb/yos-social-php5
Installation
Use Composer to get the repository
first go to alexandreeffetb/yos-social-php5 and install it!
$ composer require TehranCode/YahooApiBundle
Setting up the bundle
A) Enable the bundles in the kernel:
// app/AppKernel.php public function registerBundles() { $bundles = array( // ... new TehranCode\YahooApiBundle\TehranCodeYahooApiBundle(), ); }
B) Configure the TehranCodeYahooApiBundle
// app/config/config.yml
tehran_code_yahoo_api:
application_id: %Your_Application_ID%
consumer_key: %Your_Application_consumer_key%
consumer_secret: %Your_Application_consumer_secret%
callback_url: %Your_Application_callback_url%
How to Use Bundle
OAuth sample for profile and contacts
use the 'TehranCode.Yahoo.OAuth.Application' service to make the URL
$YahooService = $this->get('TehranCode.Yahoo.OAuth.Application'); $callback = %Your_Application_callback_url%; # Fetch request token $request_token = $YahooService->getRequestToken($callback); $session = $request->getSession(); $session->set('request_token_key', $request_token->key); $session->set('request_token_secret', $request_token->secret); # Redirect user to authorization URL $redirect_url = $YahooService->getAuthorizationUrl($request_token);
when user click above URL goes to yahoo and callback to route function:
$YahooService = $this->get('TehranCode.Yahoo.OAuth.Application'); $session = $request->getSession(); $request_token = new \OAuthToken($session->get('request_token_key'), $session->get('request_token_secret')); # Exchange request token for authorized access token $access_token = $YahooService->getAccessToken($request_token, $_REQUEST['oauth_verifier']); # update access token $YahooService->setAccessToken($access_token); # fetch user profile $Profile = $YahooService->getProfile(); # fetch user Contacts $Contacts = $YahooService->getContacts(); var_dump($Profile); var_dump($Contacts);
OAuth + OpenID sample for profile and contacts
yahoo does not return user email with simple OAuth and you need to use OAuth + OpenID to get it use the 'TehranCode.Yahoo.OAuth.Application' service to make the URL
$YahooService = $this->get('TehranCode.Yahoo.OAuth.Application'); $callback = %Your_Application_callback_url%; $OpenIDUrl = $YahooService->getOpenIDUrl($callback);
callback route function:
if(isset($_REQUEST['openid_mode'])) { $YahooService = $this->get('TehranCode.Yahoo.OAuth.Application'); if($_REQUEST['openid_mode'] == 'id_res') { // validate claimed open id // extract approved request token from open id response $request_token = new \YahooOAuthRequestToken($_REQUEST['openid_oauth_request_token'], ''); // exchange request token for access token $access_token = $YahooService->getAccessToken($request_token); $YahooService->setAccessToken($access_token); $Contacts = $YahooService->getContacts(); $Profile = $YahooService->getProfile(); //You can access OpenID response var_dump($_REQUEST['openid_ax_value_email']); var_dump($_REQUEST['openid_ax_value_language']); //You can also access OAuth response var_dump($Contacts); var_dump($Profile); //... } }