2017 © Pedro Peláez
 

symfony-bundle yahoo-api-bundle

This Bundle is a wrapper around alexandreeffetb/yos-social-php5 for yahoo php SDK

image

tehrancode/yahoo-api-bundle

This Bundle is a wrapper around alexandreeffetb/yos-social-php5 for yahoo php SDK

  • Thursday, October 29, 2015
  • by Kharestani
  • Repository
  • 1 Watchers
  • 1 Stars
  • 0 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

YahooApiBundle

Symfony2 Yahoo OAuth + OpenID This Bundle is a wrapper around alexandreeffetb/yos-social-php5, (*1)

Progress Sheet

  1. This is under construction so Don't use it or at least Debug it first!
  2. Yahoo does answer OAuth requests from Localhost but It doesn't answer OAuth+OpenID requests
  3. 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 ..., (*2)

Requirements

alexandreeffetb/yos-social-php5, (*3)

Installation

Use Composer to get the repository

first go to alexandreeffetb/yos-social-php5 and install it!, (*4)

$ composer require TehranCode/YahooApiBundle

Setting up the bundle

A) Enable the bundles in the kernel:, (*5)

// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new TehranCode\YahooApiBundle\TehranCodeYahooApiBundle(),
    );
}

B) Configure the TehranCodeYahooApiBundle, (*6)

// 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, (*7)

    $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:, (*8)

    $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, (*9)

    $YahooService = $this->get('TehranCode.Yahoo.OAuth.Application');
    $callback = %Your_Application_callback_url%;
    $OpenIDUrl = $YahooService->getOpenIDUrl($callback);

callback route function:, (*10)

    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);
            //...
        }
    }

The Versions

29/10 2015

dev-master

9999999-dev https://github.com/TehranCode/YahooApiBundle

This Bundle is a wrapper around alexandreeffetb/yos-social-php5 for yahoo php SDK

  Sources   Download

MIT

The Requires

 

by Mohammad Reza Kharestani

forum threads comment

29/10 2015

1.0.0

1.0.0.0 https://github.com/TehranCode/YahooApiBundle

This Bundle is a wrapper around alexandreeffetb/yos-social-php5 for yahoo php SDK

  Sources   Download

MIT

The Requires

 

The Development Requires

by Mohammad Reza Kharestani

forum threads comment