рдкрд░рд┐рдЪрдп
Php рдкрд░ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдкрд░, рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрдзрд┐рдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Loginza рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИред рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╣реА рд╢рд╛рдВрдд рдФрд░ рдЖрд░рд╛рдорджрд╛рдпрдХ рдерд╛, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЗрд╕ рдЕрджреНрднреБрдд рд╕реЗрд╡рд╛ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЙрднрд░рдиреЗ рд▓рдЧрд╛, рдФрд░ рдпрд╣рд╛рдБ рдХреНрдпреЛрдВ:
- Loginza рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдпрд╛ рдЗрд╕реЗ рдордирд╛ рдХрд░рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг - рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЦреЛ рджреЗрдВрдЧреЗ рдЬрд┐рдирдХреЗ рдИрдореЗрд▓ рдкреНрд░реЛрдлрд╛рдЗрд▓ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдкреНрд░реЛрдлрд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВ;
- рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, VKontakte рдПрдХ рд╕реНрдХреНрд╡рд╛рдпрд░ рдЕрд╡рддрд╛рд░ рд╕рд╣рд┐рдд рдХрдИ рддрд░реАрдХреЛрдВ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рддрд╕реНрд╡реАрд░ рджреЗ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдбреЗрдЯрд╛ Loginza рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рд╕реЗрд╡рд╛ рд╕реНрд╡рдпрдВ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕рд╛ рдбреЗрдЯрд╛ рдФрд░ рдХрд┐рд╕реЗ рджреЗрдирд╛ рд╣реИ, рдпрд╣ рддрдп рдХрд░рддреА рд╣реИ;
- рдмрд┐рдХреНрд░реА рдХреЗ рдХреНрд╖рдг рд╕реЗ рдпреИрдВрдбреЗрдХреНрд╕ рддрдХ, рдбреАрд╡рд╛рдЬрд╝рд╛ рдорд░рдирд╛ рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛: рдХреЛрдИ рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рд╕реЗрд╡рд╛ рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕ рд░реВрдк рдореЗрдВ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ 1-2 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдерд╛ред
рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реЗрд╡рд╛рдУрдВ рдХреА рдЬрдЧрд╣ рд▓реЗрдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдкреИрджрд╛ рд╣реЛрдиреЗ рдкрд░ рд╕рд╡рд╛рд▓ рдирд╣реАрдВ рдЙрдард╛ - рдХрд┐рд╕реА рдиреЗ рднреА рд╕рд╛рдорд╛рдЬрд┐рдХ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде "рд╕рдВрд╡рд╛рдж" рдХрд░рдиреЗ рдХреЗ рдЕрд╡рд╕рд░ рдХреА рдХрд▓реНрдкрдирд╛ рдирд╣реАрдВ рдХреАред рдиреЗрдЯрд╡рд░реНрдХ рд╕реАрдзреЗ, рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдлрд╝реАрд▓реНрдб рдЖрдорддреМрд░ рдкрд░ рднреБрдЧрддрд╛рди рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдореИрдВ рд▓рдЪреАрд▓реЗ рдврдВрдЧ рд╕реЗ рдЕрдиреБрд░реЛрдзрд┐рдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рд╕рдорд╛рдзрд╛рди рдЪрд╛рд╣рддрд╛ рдерд╛, рдФрд░ рдЕрдВрдд рдореЗрдВ рдореИрдВ рдкреАрдПрдЪрдкреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣рд╛рдЗрдмреНрд░рд┐рдбрде рдкрд░ рдмрд╕ рдЧрдпрд╛ред
HybridAuth
HybridAuth рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ OAuth1, OAuth2 рдФрд░ OpenID рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд╕рд╛рдорд╛рдЬрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред Google, Facebook, Twitter рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ VKontakte рдЬреИрд╕реЗ рдиреЗрдЯрд╡рд░реНрдХред рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг 2.0.11 рд╣реИ, рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг 2.1.0 рд╣реИ - рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЧрд┐рдЯрдм рдХреЗ рд▓рд┐рдВрдХ рд╣реИрдВред рдпрд╣ рдПрдордЖрдИрдЯреА рдФрд░ рдЬреАрдкреАрдПрд▓ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ
рдпрд╣рд╛рдВ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдФрд░ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЯреНрд╡рд┐рдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдирд╡реАрдирддрдо рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╕рднреА рдЙрджрд╛рд╣рд░рдг
examples
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╣реИрдВ,
hybridauth/config.php
,
install.php
рдореЗрдВ рд╕реЗрд╡рд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рднреА рд╡рд╣рд╛рдБ рд╕реНрдерд┐рдд рд╣реИрдВ, рдЬреЛ рд╣рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреА, рдЗрд╕реЗ рдЦреЛрд▓реЗрдВ:

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдПрдВрдбрдкреЙрдЗрдВрдЯ URL рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдкреНрд▓рдЧрдЗрди рдХреА рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХрд╛ рдкреВрд░рд╛ рд░рд╛рд╕реНрддрд╛, рдпрд╣ рдХреБрдЫ рд╕реЗрд╡рд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЖрдкрдХреА рд╕рд╛рдЗрдЯ рдкрд░ рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдЧреЗ рд╕рднреА рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдЖрдИрдбреА рдФрд░ рдЧреБрдкреНрдд рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рднреА рд╣реИрдВ:

рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯреНрд╡рд┐рдЯрд░ рдкрд░
рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди
рдмрдирд╛рдПрдВ ред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВрдЧреЗ рдФрд░ рд╕реЗрд╡ рдХрд░реЗрдВрдЧреЗред рдЕрдм рдПрдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рд╕рд╛рдЗрдЯ рдХреЗ рдореВрд▓ рдореЗрдВ
test.php
рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ:
<?php session_start(); $config = dirname(__FILE__) . '/hybridauth/config.php'; require_once( "hybridauth/Hybrid/Auth.php" ); if( isset( $_GET["login"] ) ) { try { $hybridauth = new Hybrid_Auth( $config ); $adapter = $hybridauth->authenticate( "twitter" ); $user_profile = $adapter->getUserProfile(); } catch( Exception $e ) { die( "<b>got an error!</b> " . $e->getMessage() ); } } if( ! isset( $user_profile ) ) { ?> <p> .</p> <h2><a href ="test.php?login=1"></a></h2> <?php } else { ?> <fieldset> <legend>twitter </legend> <b> <?php echo $user_profile->displayName; ?></b> <hr /> <b>Hybridauth access tokens for twitter:</b> <pre><?php print_r( $adapter->getAccessToken() ); ?></pre> </fieldset> <?php } ?>
рдЧреМрд░ рдХреАрдЬрд┐рдП рдХрд┐ рд╡рд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ:
- рдЬреАрдИрдЯреА рд▓реЙрдЧрд┐рди рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ; рдЕрдЧрд░ рдпрд╣ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреА рдкреЗрд╢рдХрд╢ рдХреЗ рд╕рд╛рде рдПрдХ рдкреГрд╖реНрда рдЦреЛрд▓рддрд╛ рд╣реИ;
- рд▓рд┐рдВрдХ mysite.ru/twitter.php?login=1 рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░, рд╣рдо рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рдЗрдмреНрд░рд┐рдб_рдСрде рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдкреНрд░рд╛рдорд╛рдгрд┐рдХ рд╡рд┐рдзрд┐ рдЙрд╕ рд╕реЗрд╡рд╛ рдХрд╛ рдирд╛рдо рдкрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдо рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ;
- рдлреЗрд╕рдмреБрдХ рдПрдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреА рдкреЗрд╢рдХрд╢ рдХреЗ рд╕рд╛рде рдЦреБрд▓рддрд╛ рд╣реИ, рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣реБрдВрдЪ рджреЗрддрд╛ рд╣реИ, рддреЛ getUserProfile рдкрджреНрдзрддрд┐ рд╣рдореЗрдВ рдЙрд╕рдХрд╛ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдбреЗрдЯрд╛ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧреА, рдЕрдиреНрдпрдерд╛ рд╣рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реЗрдЧреАред
рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ! рдЕрдм, рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ Twitter рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдбреЗрдЯрд╛
getUserProfile
рдХреЛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
hybridauth/Hybrid/Providers
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЦреЛрд▓реЗрдВ, рдЬрд╣рд╛рдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИрдВ, рд╣рдореЗрдВ
Twitter.php
рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо
getUserProfile
рд╡рд┐рдзрд┐
getUserProfile
рд╣реИрдВ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ:
$this->user->profile->identifier = (property_exists($response,'id'))?$response->id:""; $this->user->profile->displayName = (property_exists($response,'screen_name'))?$response->screen_name:""; $this->user->profile->description = (property_exists($response,'description'))?$response->description:""; $this->user->profile->firstName = (property_exists($response,'name'))?$response->name:""; $this->user->profile->photoURL = (property_exists($response,'profile_image_url'))?$response->profile_image_url:""; $this->user->profile->profileURL = (property_exists($response,'screen_name'))?("http://twitter.com/".$response->screen_name):""; $this->user->profile->webSiteURL = (property_exists($response,'url'))?$response->url:""; $this->user->profile->region = (property_exists($response,'location'))?$response->location:"";
рдЖрдк рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд╕рдВрдкрд░реНрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рд╕реНрдерд┐рддрд┐ рдмрджрд▓рдиреЗ рдХреЗ рддрд░реАрдХреЗ рднреА рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдпрд╣реА рд╣реИ, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдХрд┐рд╕реА рднреА рд╕рд╛рдорд╛рдЬрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП, рдЖрдк рди рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдХреЗ рд╕реЗрдЯ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдЙрдирдХреЗ рдПрдкреАрдЖрдИ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдкрдиреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
Yandex
рдПрдХ рдирдИ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реЗрд╡рд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо
hybridauth/Hybrid/Providers/Yandex.php
рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо
hybridauth/Hybrid/Providers/Yandex.php
ред Yandex рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП OAuth2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛ рдЗрд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рджреЗрдЧреА:
class Hybrid_Providers_Yandex extends Hybrid_Provider_Model_OAuth2
OAuth1 рдХреЗ рд▓рд┐рдП,
Hybrid_Provider_Model_OAuth1
рдЙрдкрдпреЛрдЧ
Hybrid_Provider_Model_OAuth1
, рдФрд░ OpenID рдХреЗ рд▓рд┐рдП,
Hybrid_Provider_Model_OpenID
ред рдЕрдм рд╣рдореЗрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдзрд┐рдХреГрдд рдХрд░рдиреЗ рдФрд░ рдЕрдкрдиреЗ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдпреИрдВрдбреЗрдХреНрд╕ рдХреЛ рдХреМрди рд╕рд╛ рдбреЗрдЯрд╛ рдЪрд╛рд╣рд┐рдПред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдИрдбреА рдФрд░ рдЧреБрдкреНрдд рдлрд╝реАрд▓реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдпреИрдВрдбреЗрдХреНрд╕ рдПрдкреАрдЖрдИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВ -
рдпрд╣рд╛рдВ рдЬрд╛рдПрдВ рдФрд░ рдПрдХ рдирдпрд╛ рдЖрд╡реЗрджрди рдкрдВрдЬреАрдХреГрдд
рдХрд░реЗрдВ ред рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо API Login.Yandex рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬрд╣рд╛рдБ рд╣рдо рдореЗрд▓рдмреЙрдХреНрд╕ рдХреЗ рдлрд╝реАрд▓реНрдб рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдирд╛рдо рдХреЛ рдиреЛрдЯ рдХрд░рддреЗ рд╣реИрдВред
рдбреЗрдЯрд╛ рднрд░рдг рдЙрджрд╛рд╣рд░рдг рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрд╡рд╢реНрдпрдХ рдЪрд╛рдмрд┐рдпрд╛рдВ рд╣реИрдВ, рдпрд╣ рдЙрдиреНрд╣реЗрдВ
hybridauth/config.php
рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ,
hybridauth/config.php
рдЦреЛрд▓реЗрдВ рдФрд░ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
"Yandex" => array ( "enabled" => true, "keys" => array ( "id" => "Id ", "secret" => " " ) ),
рдЗрд╕рдХреЗ рдмрд╛рдж,
рдпреИрдВрдбреЗрдХреНрд╕ рдкреНрд░рд▓реЗрдЦрди рдкрдврд╝реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рд╕рдВрдкрд░реНрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
oauth.yandex.ru/authorize
oauth.yandex.ru/authorize
, рдФрд░ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
oauth.yandex.ru/token
oauth.yandex.ru/token
рдпрд╣ API Login.Yandex рдХреЗ рдкрддреЗ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ - рдЗрд╕рдХреЗ рд▓рд┐рдП,
API рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдЦреЛрд▓реЗрдВ рдФрд░ Yandex, рдФрд░
OAuth + Yandex.Login рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрдЧрд┐рди
рдвреВрдВрдвреЗрдВ ред рдпрд╣рд╛рдВ рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЙрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рд╕рдВрдкрд░реНрдХ рдХрд░рдирд╛ рд╣реИ
login.yandex.ru/info
login.yandex.ru/info
рдареАрдХ рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рдм рдХреБрдЫ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП, Yandex.php рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ, рд╢реБрд░реБрдЖрддреА рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдВрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ:
$this->api->api_base_url = "https://login.yandex.ru/info"; $this->api->authorize_url = "https://oauth.yandex.ru/authorize"; $this->api->token_url = "https://oauth.yandex.ru/token";
рд╣рдо рдпрд╣ рднреА рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рд╛рдкреНрдд рдЯреЛрдХрди рдХреЛ
oauth_token
рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
$this->api->sign_token_name = "oauth_token";
рдЕрдм GetProfiles рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╣рдо рдПрдХ рдбреЗрдЯрд╛ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд▓рд┐рдЦреЗрдВрдЧреЗ, рдкрд╣рд▓реЗ рд╣рдо рдПрдХ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВрдЧреЗ:
$response = $this->api->api( "?format=json" );
рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ $ рдкреНрд░рддрд┐рд╕рд╛рдж рд╡рд╕реНрддреБ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЗрд╕реЗ рдЯреНрд╡рд┐рдЯрд░ рдХреЗ рд╕рд╛рде рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛ рд╕рд╣реЗрдЬреЗрдВред
$this->user->profile->identifier = (property_exists($response,'id'))?$response->id:""; $this->user->profile->firstName = (property_exists($response,'real_name'))?$response->real_name:""; $this->user->profile->displayName = (property_exists($response,'display_name'))?$response->display_name:""; $this->user->profile->photoURL = 'http://upics.yandex.net/'. $this->user->profile->identifier .'/normal'; $this->user->profile->gender = (property_exists($response,'sex'))?$response->sex:""; $this->user->profile->email = (property_exists($response,'default_email'))?$response->default_email:""; $this->user->profile->emailVerified = (property_exists($response,'default_email'))?$response->default_email:"";
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдорд┐рд▓реА:
Yandex.php <?php class Hybrid_Providers_Yandex extends Hybrid_Provider_Model_OAuth2 { function initialize() { parent::initialize(); $this->api->api_base_url = "https://login.yandex.ru/info"; $this->api->authorize_url = "https://oauth.yandex.ru/authorize"; $this->api->token_url = "https://oauth.yandex.ru/token"; $this->api->sign_token_name = "oauth_token"; } function getUserProfile() { $response = $this->api->api( "?format=json" ); if ( !isset( $response->id ) ) { throw new Exception( "User profile request failed! {$this->providerId} returned an invalide response.", 6 ); } $this->user->profile->identifier = (property_exists($response,'id'))?$response->id:""; $this->user->profile->firstName = (property_exists($response,'real_name'))?$response->real_name:""; $this->user->profile->displayName = (property_exists($response,'display_name'))?$response->display_name:""; $this->user->profile->photoURL = 'http://upics.yandex.net/'. $this->user->profile->identifier .'/normal'; $this->user->profile->gender = (property_exists($response,'sex'))?$response->sex:""; $this->user->profile->email = (property_exists($response,'default_email'))?$response->default_email:""; $this->user->profile->emailVerified = (property_exists($response,'default_email'))?$response->default_email:""; return $this->user->profile; } } ?>
рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЯреНрд╡рд┐рдЯрд░ рд╕реЗ рдпреИрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдмрджрд▓реЗрдВ:
$adapter = $hybridauth->authenticate( "yandex" );
рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ:

рдФрд░ рдЕрдВрдд рдореЗрдВ рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:

рдпрд╣реА рд╕рдм рд╣реИ, рдпрд╛рдВрдбреЗрдХреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рдлрд▓ рд░рд╣рд╛ред рдЖрдк рдЙрди рд╢реЗрд╖ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрдиреЗрдХреНрд╢рди, рдирдИ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рд╕рд░рд▓ рдЬреЛрдбрд╝ рдФрд░ рдУрдкрди рд╕реЛрд░реНрд╕ рдХреЛрдб - рд╡рд╣ рд╕рдм рдЬреЛ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЧрд╛рдпрдм рдерд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХреАрдХрд░рдг рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд▓реЛрдХрдкреНрд░рд┐рдп рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ CMS рдЬреИрд╕реЗ Yii, Symfony2, Wordpress, Drupal рдФрд░
рдЕрдиреНрдп рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрдиреНрд╕
рд╣реИрдВ ред
рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдЕрд╢реБрджреНрдзрд┐рдпреЛрдВ, рд╕рд╛рде рд╣реА рдкрд░рд┐рд╡рд░реНрдзрди рдХреЗ рд▓рд┐рдП, рдХреГрдкрдпрд╛ рдкреАрдПрдо рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВред
рд╕рдВрдмрдВрдзрд┐рдд рд▓рд┐рдВрдХ:
рдЕрдкрдбреЗрдЯ :
Yandex рдФрд░
Mail.ru рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг,
Odnoklassniki PHP> 5.3.0 рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдмреИрд╕рд╛рдЦреА рдХреЗ рд╕рд╛рде рдирд┐рдХрд▓рд╛ред
