Flickr.com рдкрд░ рдПрдкреАрдЖрдИ рдкреНрд░рд▓реЗрдЦрди рдкреБрд░рд╛рдирд╛ рд╣реИред рд▓рдВрдмреЗ рд╕рдордп рддрдХ oAuth 2.0 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рдЗрдЯ рдореЗрдВ рди рддреЛ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╡рд░рдг рд╣реИ, рдФрд░ рди рд╣реА рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдгред
рдлрд╝реНрд▓рд┐рдХрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рддреАрди рдЪрд░рдгреЛрдВ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ:
1. oauth_token рдФрд░ oauth_token_secret рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ, oauth_token request_token рд╣реИред
2. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдореЗрдВ рдЖрд╡реЗрджрди рдХрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдгред
3. oauth_token рдФрд░ oauth_token_secret рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рддреАрд╕рд░реЗ рдЪрд░рдг рдореЗрдВ, oauth_token access_token рд╣реИред
рд╕реНрдЯреЗрдЬ 1
рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреНрдпреЛрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╕реНрддрд░ рдкрд░ рдореБрдЭреЗ 10 рдореЗрдВ рд╕реЗ рдХреБрдЫ рдмрд╛рд░ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рдЬреЛрдбрд╝рд╛ рдФрд░ рдпрджрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реИ, рддреЛ рдлрд┐рд░ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣ рд╕рдм рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ
$("#flickr_connect").click(function(){ flickrauth(); return false; }); function flickrauth(){ $.ajax({ type: "POST", url: "/auth/flickr.php?type=get_request_token", success: function(result){ var oResult = $.parseJSON(result); if(oResult.oauth_problem == "signature_invalid"){ , flickrauth(); } if(oResult.oauth_callback_confirmed == "true"){ , . flickr.com oauth_token = oResult.oauth_token; location.href = "http://www.flickr.com/services/oauth/authorize?oauth_token="+oauth_token+"&perms=read"; } } }); }
рдиреАрдЪреЗ рд╡рд╣ рдХреЛрдб рд╣реИ рдЬрд┐рд╕реЗ рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛
if($_GET["type"] == "get_request_token"){ $request_token_url = "http://www.flickr.com/services/oauth/request_token"; $oauth_nonce=md5(microtime().mt_rand()); $timestamp = time(); $consumer_key = "676d28f0d2ae990730a3fb232c252a8b"; $consumer_secret = "36b056c53456fef"; $sig_method = "HMAC-SHA1"; $oauth_version = "1.0"; $callback_url = "http://example.com/auth/flickr.php"; $basestring = "oauth_callback=".urlencode($callback_url)."&oauth_consumer_key=".$consumer_key."&oauth_nonce=".$oauth_nonce."&oauth_signature_method=".$sig_method."&oauth_timestamp=".$timestamp."&oauth_version=".$oauth_version;
Oauth_nonce ="ред $ Oauth_nonceред "рдФрд░ oauth_timestamp ="ред $ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдкред "& Oauth_consumer_key ="ред $ Consumer_keyред "рдФрд░ oauth_signature_method ="ред $ Sig_methodред "рдФрд░ oauth_version ="ред $ Oauth_versionред "рдФрд░ oauth_signature = if($_GET["type"] == "get_request_token"){ $request_token_url = "http://www.flickr.com/services/oauth/request_token"; $oauth_nonce=md5(microtime().mt_rand()); $timestamp = time(); $consumer_key = "676d28f0d2ae990730a3fb232c252a8b"; $consumer_secret = "36b056c53456fef"; $sig_method = "HMAC-SHA1"; $oauth_version = "1.0"; $callback_url = "http://example.com/auth/flickr.php"; $basestring = "oauth_callback=".urlencode($callback_url)."&oauth_consumer_key=".$consumer_key."&oauth_nonce=".$oauth_nonce."&oauth_signature_method=".$sig_method."&oauth_timestamp=".$timestamp."&oauth_version=".$oauth_version;
рд╕реНрдЯреЗрдЬ 2
рдкрд╣рд▓рд╛ рдЪрд░рдг рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЕрдзрд┐рдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ "YES" рджрдмрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдФрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рд╣реЛрддрд╛ рд╣реИ рдФрд░ oeth_token, рдЬреЛ рдЕрднреА рднреА request_token рдФрд░ oauth_verifier рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рддреАрд╕рд░реЗ рдЪрд░рдг рдореЗрдВ access_token рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд╕реНрдЯреЗрдЬ 3
рдиреАрдЪреЗ access_token рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдХреЛрдб рд╣реИ
if(isset($_GET["oauth_token"])){ $recent_update = mysql_query("UPDATE users SET oauth_verifier='".$_GET['oauth_verifier']."' WHERE user_id=".$_SESSION['user_id']); $recent = mysql_query("SELECT * FROM users WHERE user_id=".$_SESSION['user_id']); $recent_info = mysql_fetch_assoc($recent); $request_token_url = "http://www.flickr.com/services/oauth/access_token"; $oauth_nonce=md5(microtime().mt_rand()); $timestamp = time(); $consumer_key = "676d28f0d2ae990730a3fb232c252a8b"; $consumer_secret = "36b056c53456fef"; $sig_method = "HMAC-SHA1"; $oauth_version = "1.0"; $oauth_token_secret = $recent_info['oauth_token_secret']; $basestring = "oauth_consumer_key=".$consumer_key."&oauth_nonce=".$oauth_nonce."&oauth_signature_method=".$sig_method."&oauth_timestamp=".$timestamp."&oauth_token=".$_GET['oauth_token']."&oauth_verifier=".$_GET['oauth_verifier']."&oauth_version=".$oauth_version; $basestring = "GET&".urlencode($request_token_url)."&".urlencode($basestring);
рдпрд╣рд╛рдБ рдкреНрд░рд╛рдкреНрдд oauth_token рдФрд░ oauth_token_secret рд╕рднреА рдмрд╛рдж рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдВрдЧреЗ
рдлрд╝реЛрдЯреЛ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдпрджрд┐ рдЖрдк рдлрд╝реНрд▓рд┐рдХрд░ рдкрд░ OAUTH рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ
www.flickr.com/services/api рдкрд░ рдмрддрд╛рдП рдЧрдП рддрд░реАрдХреЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕реБрдзрд╛рд░ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдиреАрдЪреЗ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рддрд╕реНрд╡реАрд░реЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ