OAuth Service Provider for Laravel 4

Overview

OAuth wrapper for Laravel 4

oauth-4-laravel is a simple laravel 4 service provider (wrapper) for Lusitanian/PHPoAuthLib which provides oAuth support in PHP 5.3+ and is very easy to integrate with any project which requires an oAuth client.


Supported services

The library supports both oAuth 1.x and oAuth 2.0 compliant services. A list of currently implemented services can be found below. More services will be implemented soon.

Included service implementations:

  • OAuth1
    • BitBucket
    • Etsy
    • FitBit
    • Flickr
    • Scoop.it!
    • Tumblr
    • Twitter
    • Xing
    • Yahoo
  • OAuth2
    • Amazon
    • BitLy
    • Box
    • Dailymotion
    • Dropbox
    • Facebook
    • Foursquare
    • GitHub
    • Google
    • Harvest
    • Heroku
    • Instagram
    • LinkedIn
    • Mailchimp
    • Microsoft
    • PayPal
    • Pocket
    • Reddit
    • RunKeeper
    • SoundCloud
    • Vkontakte
    • Yammer
  • more to come!

To learn more about Lusitanian/PHPoAuthLib go here

Installation

Use composer to install this package.

$ composer require artdarek/oauth-4-laravel:dev-master

Registering the Package

Register the service provider within the providers array found in app/config/app.php:

'providers' => array(
	// ...
	
	'Artdarek\OAuth\OAuthServiceProvider'
)

Add an alias within the aliases array found in app/config/app.php:

'aliases' => array(
	// ...
	
	'OAuth' => 'Artdarek\OAuth\Facade\OAuth',
)

Configuration

There are two ways to configure oauth-4-laravel. You can choose the most convenient way for you. You can use package config file which can be generated through command line by artisan (option 1) or you can simply create a config file called oauth-4-laravel.php in your app\config\ directory (option 2).

Option 1

Create configuration file for package using artisan command

$ php artisan config:publish artdarek/oauth-4-laravel

Option 2

Create configuration file manually in config directory app/config/oauth-4-laravel.php and put there code from below.

<?php
return array( 
	
	/*
	|--------------------------------------------------------------------------
	| oAuth Config
	|--------------------------------------------------------------------------
	*/

	/**
	 * Storage
	 */
	'storage' => 'Session', 

	/**
	 * Consumers
	 */
	'consumers' => array(

		/**
		 * Facebook
		 */
		'Facebook' => array(
		    'client_id'     => '',
		    'client_secret' => '',
		    'scope'         => array(),
		),		

	)

);

Credentials

Add your credentials to app/config/packages/artdarek/oauth-4-laravel/config.php or app/config/oauth-4-laravel.php (depending on which option of configuration you choose)

The Storage attribute is optional and defaults to Session. Other options.

Usage

Basic usage

Just follow the steps below and you will be able to get a service class object with this one rule:

$fb = OAuth::consumer('Facebook');

Optionally, add a second parameter with the URL which the service needs to redirect to, otherwise it will redirect to the current URL.

$fb = OAuth::consumer('Facebook','http://url.to.redirect.to');

Usage examples

Facebook:

Configuration: Add your Facebook credentials to app/config/packages/artdarek/oauth-4-laravel/config.php

'Facebook' => array(
    'client_id'     => 'Your Facebook client ID',
    'client_secret' => 'Your Facebook Client Secret',
    'scope'         => array('email','read_friendlists','user_online_presence'),
),	

In your Controller use the following code:

/**
 * Login user with facebook
 *
 * @return void
 */

public function loginWithFacebook() {
	
	// get data from input
	$code = Input::get( 'code' );
	
	// get fb service
	$fb = OAuth::consumer( 'Facebook' );
	
	// check if code is valid
	
	// if code is provided get user data and sign in
	if ( !empty( $code ) ) {
		
		// This was a callback request from facebook, get the token
		$token = $fb->requestAccessToken( $code );
		
		// Send a request with it
		$result = json_decode( $fb->request( '/me' ), true );
		
		$message = 'Your unique facebook user id is: ' . $result['id'] . ' and your name is ' . $result['name'];
		echo $message. "<br/>";
		
		//Var_dump
		//display whole array().
		dd($result);
	
	}
	// if not ask for permission first
	else {
		// get fb authorization
		$url = $fb->getAuthorizationUri();
		
		// return to facebook login url
		 return Redirect::to( (string)$url );
	}

}

Google:

Configuration: Add your Google credentials to app/config/packages/artdarek/oauth-4-laravel/config.php

'Google' => array(
    'client_id'     => 'Your Google client ID',
    'client_secret' => 'Your Google Client Secret',
    'scope'         => array('userinfo_email', 'userinfo_profile'),
),	

In your Controller use the following code:

public function loginWithGoogle() {

	// get data from input
	$code = Input::get( 'code' );
	
	// get google service
	$googleService = OAuth::consumer( 'Google' );
	
	// check if code is valid
	
	// if code is provided get user data and sign in
	if ( !empty( $code ) ) {
	
		// This was a callback request from google, get the token
		$token = $googleService->requestAccessToken( $code );
		
		// Send a request with it
		$result = json_decode( $googleService->request( 'https://www.googleapis.com/oauth2/v1/userinfo' ), true );
		
		$message = 'Your unique Google user id is: ' . $result['id'] . ' and your name is ' . $result['name'];
		echo $message. "<br/>";
		
		//Var_dump
		//display whole array().
		dd($result);
	        
	}
	// if not ask for permission first
	else {
		// get googleService authorization
		$url = $googleService->getAuthorizationUri();
		
		// return to google login url
		return Redirect::to( (string)$url );
	}
}

Twitter:

Configuration: Add your Twitter credentials to app/config/packages/artdarek/oauth-4-laravel/config.php

'Twitter' => array(
    'client_id'     => 'Your Twitter client ID',
    'client_secret' => 'Your Twitter Client Secret',
    // No scope - oauth1 doesn't need scope
),	

In your Controller use the following code:

public function loginWithTwitter() {

	// get data from input
	$token = Input::get( 'oauth_token' );
	$verify = Input::get( 'oauth_verifier' );
	
	// get twitter service
	$tw = OAuth::consumer( 'Twitter' );
	
	// check if code is valid
	
	// if code is provided get user data and sign in
	if ( !empty( $token ) && !empty( $verify ) ) {
	
		// This was a callback request from twitter, get the token
		$token = $tw->requestAccessToken( $token, $verify );
		
		// Send a request with it
		$result = json_decode( $tw->request( 'account/verify_credentials.json' ), true );
		
		$message = 'Your unique Twitter user id is: ' . $result['id'] . ' and your name is ' . $result['name'];
		echo $message. "<br/>";
		
		//Var_dump
		//display whole array().
		dd($result);
	        
	}
	// if not ask for permission first
	else {
		// get request token
		$reqToken = $tw->requestRequestToken();
		
		// get Authorization Uri sending the request token
		$url = $tw->getAuthorizationUri(array('oauth_token' => $reqToken->getRequestToken()));

		// return to twitter login url
		return Redirect::to( (string)$url );
	}
}

Linkedin:

Configuration: Add your Linkedin credentials to app/config/packages/artdarek/oauth-4-laravel/config.php

'Linkedin' => array(
    'client_id'     => 'Your Linkedin API ID',
    'client_secret' => 'Your Linkedin API Secret',
),	

In your Controller use the following code:

 public function loginWithLinkedin() {

        // get data from input
        $code = Input::get( 'code' );

        $linkedinService = OAuth::consumer( 'Linkedin' );


        if ( !empty( $code ) ) {

            // This was a callback request from linkedin, get the token
            $token = $linkedinService->requestAccessToken( $code );
            // Send a request with it. Please note that XML is the default format.
            $result = json_decode($linkedinService->request('/people/~?format=json'), true);

            // Show some of the resultant data
            echo 'Your linkedin first name is ' . $result['firstName'] . ' and your last name is ' . $result['lastName'];


            //Var_dump
            //display whole array().
            dd($result);

        }// if not ask for permission first
        else {
            // get linkedinService authorization
            $url = $linkedinService->getAuthorizationUri(array('state'=>'DCEEFWF45453sdffef424'));

            // return to linkedin login url
            return Redirect::to( (string)$url );
        }


    }

Yahoo:

Configuration: Add your Yahoo credentials to app/config/packages/artdarek/oauth-4-laravel/config.php

'Yahoo' => array(
            'client_id'     => 'Your Yahoo API KEY',
            'client_secret' => 'Your Yahoo API Secret',  
),	

In your Controller use the following code:

public function loginWithYahoo() {
   // get data from input
   	$token = Input::get( 'oauth_token' );
    $verify = Input::get( 'oauth_verifier' );
    // get yahoo service
    $yh = OAuth::consumer( 'Yahoo' );

    // if code is provided get user data and sign in
    if ( !empty( $token ) && !empty( $verify ) ) {
				// This was a callback request from yahoo, get the token
				$token = $yh->requestAccessToken( $token, $verify );
				$xid = array($token->getExtraParams());
				$result = json_decode( $yh->request( 'https://social.yahooapis.com/v1/user/'.$xid[0]['xoauth_yahoo_guid'].'/profile?format=json' ), true );	
                
                dd($result);								
    }
    // if not ask for permission first
    else {
        // get request token
        $reqToken = $yh->requestRequestToken();
        // get Authorization Uri sending the request token
        $url = $yh->getAuthorizationUri(array('oauth_token' => $reqToken->getRequestToken()));
        // return to yahoo login url
        return Redirect::to( (string)$url );
    }
}

More usage examples:

For examples go here

Comments
  • How to use your wrapper with Lusitanian/PHPoAuthLib?

    How to use your wrapper with Lusitanian/PHPoAuthLib?

    Hi Artdarek, I have downloaded and using your Oauth rapper with Laravel 4 and I am successfully generating the wrapper class. However , i am struggling to use this object with Lusitanian/PHPoAuthLib. Do you have any example?

    I am trying to use Twitter.

    Anam

    question 
    opened by anam-hossain 32
  • TokenResponseException

    TokenResponseException

    When trying to get a access token using the requestAccessToken($code) method, I am getting this returned

    {"error":{"type":"OAuth\\Common\\Http\\Exception\\TokenResponseException","message":"Failed to request resource.","file":"\/Users\/josh\/Sites\/richmedia\/vendor\/lusitanian\/oauth\/src\/OAuth\/Common\/Http\/Client\/StreamClient.php","line":62}}
    

    Any ideas?

    opened by joshbrw 31
  • Token not found in session - Twitter

    Token not found in session - Twitter

    Hi Artdarek,

    I have successfully able to integrate Google, Facebook, LinkedIn etc using your Oauth Laravel 4 Wrapper. However, I am stuck with Twitter since yesterday. Twitter is returning Oauth token and Oauth verifier when i have requested. http://example.dev/twitter?oauth_token=4gioDdSxM2dOb6vuYHQaWzhT3dXka4lVd7mpi3jjVQ&oauth_verifier=syO0Dko8FUMJz2K1yAMtuKF9AJc8q2jAJYWC2Guu7Cw

    However, I am receiving the following error.

    OAuth \ Common \ Storage \ Exception \ TokenNotFoundException
    Token not found in session, are you sure you stored it?
    

    The following code is throwing the exception:

    $token = $twitterService->getStorage()->retrieveAccessToken('Twitter');
    

    My configuration for Twitter:

    'Twitter' => array(
                'client_id'         => 'sdfsaQt7W8sdafs',
                'client_secret'     => 'sdfasdf9ag5nMq4lHBcBeurPrsfasdfa',
            ),  
    

    May be i am missing something in configuration.

    Sorry to bug you again about this...

    opened by anam-hossain 20
  • Twitter example

    Twitter example

    I'm assuming a slightly different flow for Twitter inside Laravel than FB or Goog. Do you happen to have an example using Twitter? The one in the examples folder seems to be non-laravel specific. Trying to port that over but thus far . . . failing : (

    question 
    opened by mterenzio 11
  • Twitter Auth - Failed to request resource

    Twitter Auth - Failed to request resource

    I have seen that a lot of people are having this problem but non of the "fixes" are working for me.

    the problem is down to

    $token = $twitterService->requestRequestToken();

    /lusitanian/oauth/src/OAuth/Common/Http/Client/StreamClient.php line 68

    I think the main problem is that the code is only a small part of the signin process so I have a few questions which should sort this.

    1. how is the config structured, i have the following:

    'consumers' => array(

    'Facebook' => array(
        'client_id'     => '',
        'client_secret' => '',
        'scope'         => array(),
    ),
    
    'Twitter' => array(
        'key'   => '',
        'secret' => ''
    )
    

    )

    1. how is the application in the twitter panel supposed to be setup?

    I have a callback url set (even though its local) and I have the "allow this application to sign in..." ticked.

    Is there anything else here?

    opened by ACTwebDesigns 7
  • Call to undefined method OAuth::consumer()

    Call to undefined method OAuth::consumer()

    The plugin is working perfectly in development, but when I push to production (using Amazon EC2) the plugin is not found in my controller:

    Symfony \ Component \ Debug \ Exception \ FatalErrorException
    Call to undefined method OAuth::consumer()
    

    Another guy was having the same issue here and as yet no one has resolved it. http://forums.laravel.io/viewtopic.php?id=14560

    Any help would be much appreciated, thanks.

    opened by benwigley 7
  • Facebook auth does not return email

    Facebook auth does not return email

    please help. İts only return array(2) { ["name"]=> string(10) "Arif Erzin" ["id"]=> string(17) "10153177435559690" }

    opened by erhanw3 4
  • Share laravel session

    Share laravel session

    I modified the code to share the Laravel session instance with the consumer instances. I also added a unit test and modified the formatting slightly to be more in line with Laravel.

    opened by jenssegers 4
  • How do I get hold of the access token?

    How do I get hold of the access token?

    I'm succesfully using this library with my Laravel 4 application, logging in users using their Google accounts.

    However I would need to get hold of the access token, which is needed in order to make further Google API calls on behalf of the logged in user. Is it at all possible to retreive the access token in clear text?

    question 
    opened by andergrim 4
  • Manually setting access token

    Manually setting access token

    How can I manually set the access token? I.e.:

    $fb = OAuth::consumer( 'Facebook' );
    $fb->setAccessToken('some_long_access_token');
    $fb->request('/me');
    
    opened by simplenotezy 3
  • Emergency: 5 methods NOT implemented here - Class Artdarek\OAuth\TokenStorage

    Emergency: 5 methods NOT implemented here - Class Artdarek\OAuth\TokenStorage

    Class Artdarek\OAuth\TokenStorage contains 5 abstract methods and must therefore be declared abstract or implement the remaining methods (OAuth\Common\Storage\TokenStorageInterface::storeAuthorizationState, OAuth\Common\Storage\TokenStorageInterface::hasAuthorizationState, OAuth\Common\Storage\TokenStorageInterface::retrieveAuthorizationState OAuth\Common\Storage\TokenStorageInterface:clearAuthorizationState, OAuth\Common\Storage\TokenStorageInterface::clearAllAuthorizationStates,

    opened by asmshaon 3
  • HTTP Code: HTTP/1.1 400 Bad Request

    HTTP Code: HTTP/1.1 400 Bad Request

    I have a problem

    My code: ` public function importGmail() {

    	$code = Request::get('code');
    	$googleService = \OAuth::consumer('Google');
    	if(!is_null($code)) {
       		$token = $googleService->requestAccessToken($code);
    		$result = json_decode($googleService->request('https://www.google.com/m8/feeds/contacts/default/full?alt=json&amp;max-results=400'), true);
        	$emails = []; // initialize the new array
            foreach ($result['feed']['entry'] as $contact) {
                if (isset($contact['gd$email'])) { // Sometimes, a contact doesn't have email address
                $emails[] = $contact['gd$email'][0]['address'];
            	}
    		}	
    		return $emails;
    	}
    	else {
    		$url = $googleService->getAuthorizationUri();
    		return redirect((string)$url);
    	}
    }`
    

    Function return: HTTP Code: HTTP/1.1 400 Bad Request

    opened by KamilCwiertnia 0
  • How to pass access token as Authorization header?

    How to pass access token as Authorization header?

    Hi, I have an access token for a user saved in the DB, and wanted to make an API request on their behalf. I understand I can append the 'access_token' parameter to the API endpoint URL, but I would prefer to send it in a HTTP authorization header - how would I do that?

    Cheers

    opened by plindsay 0
  • Call to a member function getAuthorizationUri() on null: Facebook Login Issue with Facebook Graph API Version 2.8

    Call to a member function getAuthorizationUri() on null: Facebook Login Issue with Facebook Graph API Version 2.8

    Hi,

    I have configured this package with laravel 4.2.17. When i am trying to create login with facebook i am getting an error "Call to a member function getAuthorizationUri() on null". I have created new App in Facebook with version 2.8 and set redirect url in config file same as configured in Facebook App.

    facebook login issue

    Below is my code in Controller.php:

    public function loginWithFacebook() {
    
    // get data from input
    $code = Input::get( 'code' );
    
    // get fb service
    $return_url = URL::to('/') ."/login/fb/";
    
    $fb = OAuth::consumer( 'Facebook',$return_url );
    
    // check if code is valid
    
    // if code is provided get user data and sign in
    if ( !empty( $code ) ) {
    	
    	// This was a callback request from facebook, get the token
    	$token = $fb->requestAccessToken( $code );
    	
    	// Send a request with it
    	$result = json_decode( $fb->request( '/me' ), true );
    	
    	$message = 'Your unique facebook user id is: ' . $result['id'] . ' and your name is ' . $result['name'];
    	echo $message. "<br/>";
    	
    	//Var_dump
    	//display whole array().
    	dd($result);
    
    }
    // if not ask for permission first
    else {
    	// get fb authorization
    	$url = $fb->getAuthorizationUri();
    	
    	// return to facebook login url
    	 return Redirect::to( (string)$url );
    }
    

    }

    Below is my code in app/config/app.php:

    'providers' => array(
    	'Artdarek\OAuth\OAuthServiceProvider'
    ),
    
    'aliases' => array(
    	'OAuth' => 'Artdarek\OAuth\Facade\OAuth',
    ),
    

    I have updated Facebook App client_id and client_secret in my app/config/oauth-4-laravel.php:

    Also getting a same issue for Login with Linkedin, Google. Thanks in advance for help.

    opened by sw-tt-aniruddhbhavsar 0
  • Twitter Login Issue

    Twitter Login Issue

    Please i keep getting an error when requesting for request token for twitter. Below is the error. Failed to request resource. HTTP Code: HTTP/1.1 401 Authorization Required

    I used the instruction for applying this hear https://github.com/artdarek/oauth-4-laravel

    And in my configuration for twitter i used my twitter app's Consumer Key (API Key) as client ID and Consumer Secret (API Secret) as client secret

    opened by thecodecafe 1
  • Is this package dead?

    Is this package dead?

    I'm curious, we're still using this package on production environment(s) and the last update was over 18 months ago. Are you still maintaining this? A lot of APIs are deprecating or updating beyond the scope of this ageing package.

    Can we have an update please?

    opened by zesda 1
  • Facebook Login Failed

    Facebook Login Failed "Undefined index: access_token"

    Hi! Sometimes I have problems with the Facebook Login. Then I get the following message:

    Message: Undefined index: access_token [] [] exception 'ErrorException' with message 'Undefined index: access_token' in .../vendor/lusitanian/oauth/src/OAuth/OAuth2/Service/Facebook.php:171 .../vendor/lusitanian/oauth/src/OAuth/OAuth2/Service/Facebook.php(171): Illuminate\Exception\Handler->handleError(8, 'Undefined index...', '/var/www/...', 171, Array) #1 .../vendor/lusitanian/oauth/src/OAuth/OAuth2/Service/AbstractService.php(127): OAuth\OAuth2\Service\Facebook->parseAccessTokenResponse('{"error":{"mess...')

    The exception happens when I call the following function in my controller: $token = $fb->requestAccessToken( $code );

    Please help. It is really anoying loosing users because login does not work sometimes! Thanks!

    opened by ppeinsold 9
Owner
Dariusz Prząda
Dariusz Prząda
OAuth Service Provider for Laravel 5

OAuth wrapper for Laravel 5 oauth-5-laravel is a simple laravel 5 service provider (wrapper) for Lusitanian/PHPoAuthLib which provides oAuth support i

null 2 Sep 19, 2018
Laravel wrapper around OAuth 1 & OAuth 2 libraries.

Introduction Laravel Socialite provides an expressive, fluent interface to OAuth authentication with Facebook, Twitter, Google, LinkedIn, GitHub, GitL

The Laravel Framework 5.2k Dec 27, 2022
PHPoAuthLib provides oAuth support in PHP 7.2+ and is very easy to integrate with any project which requires an oAuth client.

PHPoAuthLib NOTE: I'm looking for someone who could help to maintain this package alongside me, just because I don't have a ton of time to devote to i

David Desberg 1.1k Dec 27, 2022
EAuth extension allows to authenticate users by the OpenID, OAuth 1.0 and OAuth 2.0 providers

EAuth extension allows to authenticate users with accounts on other websites. Supported protocols: OpenID, OAuth 1.0 and OAuth 2.0.

Maxim Zemskov 330 Jun 3, 2022
Buddy Provider for the OAuth 2.0 Client

Buddy Provider for OAuth 2.0 Client This package provides Buddy OAuth 2.0 support for the PHP League's OAuth 2.0 Client. Installation To install, use

Buddy 0 Jan 19, 2021
Easy integration with OAuth 2.0 service providers.

OAuth 2.0 Client This package provides a base for integrating with OAuth 2.0 service providers. The OAuth 2.0 login flow, seen commonly around the web

The League of Extraordinary Packages 3.4k Dec 31, 2022
A Laravel 5 package for OAuth Social Login/Register implementation using Laravel socialite and (optionally) AdminLTE Laravel package

laravel-social A Laravel 5 package for OAuth Social Login/Register implementation using Laravel socialite and (optionally) AdminLTE Laravel package. I

Sergi Tur Badenas 42 Nov 29, 2022
An OAuth 2.0 bridge for Laravel and Lumen [DEPRECATED FOR LARAVEL 5.3+]

OAuth 2.0 Server for Laravel (deprecated for Laravel 5.3+) Note: This package is no longer maintaned for Laravel 5.3+ since Laravel now features the P

Luca Degasperi 2.4k Jan 6, 2023
Social OAuth Authentication for Laravel 5. drivers: facebook, github, google, linkedin, weibo, qq, wechat and douban

Social OAuth Authentication for Laravel 5. drivers: facebook, github, google, linkedin, weibo, qq, wechat and douban

安正超 330 Nov 14, 2022
A spec compliant, secure by default PHP OAuth 2.0 Server

PHP OAuth 2.0 Server league/oauth2-server is a standards compliant implementation of an OAuth 2.0 authorization server written in PHP which makes work

The League of Extraordinary Packages 6.2k Jan 4, 2023
PHP 5.3+ oAuth 1/2 Client Library

PHPoAuthLib NOTE: I'm looking for someone who could help to maintain this package alongside me, just because I don't have a ton of time to devote to i

David Desberg 1.1k Dec 27, 2022
OAuth 1 Client

OAuth 1.0 Client OAuth 1 Client is an OAuth RFC 5849 standards-compliant library for authenticating against OAuth 1 servers. It has built in support f

The League of Extraordinary Packages 907 Dec 16, 2022
The first PHP Library to support OAuth for Twitter's REST API.

THIS IS AN MODIFIED VERSION OF ABRAHAMS TWITTER OAUTH CLASS The directories are structured and the class uses PHP5.3 namespaces. Api.php has a new

Ruud Kamphuis 51 Feb 11, 2021
OAuth client integration for Symfony. Supports both OAuth1.0a and OAuth2.

HWIOAuthBundle The HWIOAuthBundle adds support for authenticating users via OAuth1.0a or OAuth2 in Symfony. Note: this bundle adds easy way to impleme

Hardware Info 2.2k Dec 30, 2022
Kaiju is an open source verification bot based on Discord's OAuth written in C# and PHP, with the functionality of being able to integrate the user to a new server in case yours is suspended.

What is Kaiju? Kaiju is an open source verification bot for Discord servers, based on OAuth and with permission for the server owner, to be able to mi

in the space 10 Nov 20, 2022
The most popular PHP library for use with the Twitter OAuth REST API.

TwitterOAuth The most popular PHP library for Twitter's OAuth REST API. See documentation at https://twitteroauth.com. PHP versions listed as "active

Abraham Williams 4.2k Dec 23, 2022
This module is intended to provide oauth authentication to freescout.

OAuth FreeScout This module is intended to provide oauth authentication to freescout. Module was tested on keycloak oauth provider with confidential o

Michael Bolsunovskyi 9 Dec 21, 2022
The Salla OAuth Client library is designed to provide client applications with secure delegated access to Salla Merchant stores.

Salla Provider for OAuth 2.0 Client This package provides Salla OAuth 2.0 support for the PHP League's OAuth 2.0 Client. To use this package, it will

Salla 14 Nov 27, 2022
Twitter OAuth API for PHP 5.3+

README The Wid'op OAuth library is a modern PHP 5.3+ API allowing you to easily obtain a Twitter access token. For now, it supports OAuth Web & Applic

Wid'op 8 Dec 11, 2020