HTTP_OAuth
[ class tree: HTTP_OAuth ] [ index: HTTP_OAuth ] [ all elements ]

Source for file index.php

Documentation is available at index.php

  1. <html>
  2. <head>
  3.     <title>HTTP_OAuth Example Tool</title>
  4.  
  5.     <style type="text/css" media="all">@import "styles.css";</style>
  6.     <style type="text/css" media="all">@import "thickbox.css";</style>
  7.  
  8.     <script src="jquery.js" type="text/javascript"></script>
  9.     <script src="jquery.cookie.js" type="text/javascript"></script>
  10.     <script src="jquery.fade.js" type="text/javascript"></script>
  11.     <script src="thickbox.js" type="text/javascript"></script>
  12. </head>
  13. <body>
  14.  
  15. <script type="text/javascript">
  16. $(document).ready(function() {
  17.     $('input').each(function() {
  18.         if (this.value.length < 1) {
  19.             this.value = $.cookie(this.id);
  20.         }
  21.     });
  22.  
  23.     $('.add-argument').click(function() {
  24.         var add = $(this).siblings('div').eq(0).clone();
  25.         add.children('input').val('');
  26.         $(this).before(add);
  27.         return false;
  28.     });
  29.  
  30.     if ($('#verifier').val().length > 1) {
  31.         activate_access_token();
  32.         $('.code').hide();
  33.         $('#authorize-url-code').show();
  34.     } else {
  35.         activate_request_token();
  36.     }
  37.  
  38.     $('.into-html').click(function() {
  39.         $(this).html($(this).text());
  40.     });
  41.  
  42.     function activate_request_token() {
  43.         $('#fetch_request_token').removeClass('disabled').click(function() {
  44.             var data = {
  45.                 consumer_key: $('#consumer_key').val(),
  46.                 consumer_secret: $('#consumer_secret').val(),
  47.                 request_token_url: $('#request_token_url').val(),
  48.                 callback_url: window.location.toString(),
  49.                 method: $('#request_token_method').val()
  50.             }
  51.  
  52.             if ($('#request_token_method').val() == 'POST') {
  53.                 method = 'POST';
  54.                 $('#request_token_arguments > div.argument').each(function() {
  55.                     data['args[' + $(this).children('input').eq(0).val() + ']'] =
  56.                         $(this).children('input').eq(1).val();
  57.                 });
  58.             }
  59.  
  60.             $.ajax({
  61.                 type: "GET",
  62.                 url: "request_token.php",
  63.                 dataType: "json",
  64.                 data: data,
  65.                 success: function(json) {
  66.                     if (json.token === undefined || json.token_secret === undefined) {
  67.                         alert('Error!');
  68.                     }
  69.  
  70.                     $('#token').val(json.token).vkfade();
  71.                     $('#token_secret').val(json.token_secret).vkfade();
  72.                     success('Got request token! ready to open authorize url');
  73.                     activate_authorize();
  74.                     $('.code').hide();
  75.                     $('#request-token-code').show();
  76.                     return false;
  77.                 },
  78.                 error: function(res) {
  79.                     error(res.responseText);
  80.                 }
  81.             });
  82.  
  83.             return false;
  84.         });
  85.     }
  86.  
  87.     function activate_authorize() {
  88.         $('#open_authorize_url').removeClass('disabled').click(function() {
  89.             var url = $('#authorize_url').val();
  90.             if (url.length < 1) {
  91.                 alert('Missing authorize url setting');
  92.                 return false;
  93.             }
  94.  
  95.             var token = $('#token').val();
  96.             if (token.length < 1) {
  97.                 alert('Missing request token!');
  98.             }
  99.  
  100.             $('input').each(function() {
  101.                 $.cookie(this.id, this.value);
  102.             });
  103.  
  104.             window.location = url + '?oauth_token=' + token;
  105.  
  106.             return false;
  107.         });
  108.     }
  109.  
  110.     function activate_access_token() {
  111.         $('#fetch_access_token').removeClass('disabled').click(function() {
  112.             var data = {
  113.                 consumer_key: $('#consumer_key').val(),
  114.                 consumer_secret: $('#consumer_secret').val(),
  115.                 token: $('#token').val(),
  116.                 token_secret: $('#token_secret').val(),
  117.                 verifier: $('#verifier').val(),
  118.                 access_token_url: $('#access_token_url').val(),
  119.                 method: $('#access_token_method').val()
  120.             }
  121.  
  122.             if ($('#access_token_method').val() == 'POST') {
  123.                 method = 'POST';
  124.                 $('#access_token_arguments > div.argument').each(function() {
  125.                     data['args[' + $(this).children('input').eq(0).val() + ']'] =
  126.                         $(this).children('input').eq(1).val();
  127.                 });
  128.             }
  129.  
  130.             $.ajax({
  131.                 type: "GET",
  132.                 url: "access_token.php",
  133.                 dataType: "json",
  134.                 data: data,
  135.                 success: function(json) {
  136.                     if (json.token === undefined || json.token_secret === undefined) {
  137.                         alert('Error!');
  138.                     }
  139.  
  140.                     $('#token').val(json.token).vkfade();
  141.                     $('#token_secret').val(json.token_secret).vkfade();
  142.                     success('Got access token! ready to do oauth requests');
  143.                     activate_oauth_request();
  144.                     $('.code').hide();
  145.                     $('#access-token-code').show();
  146.  
  147.                     return false;
  148.                 },
  149.                 error: function(res) {
  150.                     error(res.responseText);
  151.                 }
  152.             });
  153.  
  154.             return false;
  155.         });
  156.     }
  157.  
  158.     function activate_oauth_request() {
  159.         $('#oauth_request').removeClass('disabled').click(function() {
  160.             var data = {
  161.                 consumer_key: $('#consumer_key').val(),
  162.                 consumer_secret: $('#consumer_secret').val(),
  163.                 token: $('#token').val(),
  164.                 token_secret: $('#token_secret').val(),
  165.                 protected_resource: $('#protected_resource_url').val(),
  166.                 method: $('#protected_resource_method').val()
  167.             }
  168.  
  169.             if ($('#protected_resource_method').val() == 'POST') {
  170.                 method = 'POST';
  171.                 $('#protected_resource_arguments > div.argument').each(function() {
  172.                     data['args[' + $(this).children('input').eq(0).val() + ']'] =
  173.                         $(this).children('input').eq(1).val();
  174.                 });
  175.             }
  176.  
  177.  
  178.             $.ajax({
  179.                 type: "GET",
  180.                 url: "oauth_request.php",
  181.                 data: data,
  182.                 success: function(res) {
  183.                     success(res);
  184.                     $('.code').hide();
  185.                     $('#oauth-request-code').show();
  186.  
  187.                     return false;
  188.                 },
  189.                 error: function(res) {
  190.                     error(res.responseText);
  191.                 }
  192.             });
  193.  
  194.             return false;
  195.         });
  196.     }
  197.  
  198.     $('.defaults > select').change(function() {
  199.         switch ($(this).val()) {
  200.         case 'digg':
  201.             var request_token_url = 'http://services.digg.com/1.0/endpoint?method=oauth.getRequestToken';
  202.             var authorize_url     = 'http://digg.com/oauth/authorize';
  203.             var access_token_url  = 'http://services.digg.com/1.0/endpoint?method=oauth.getAccessToken';
  204.             break;
  205.         case 'twitter':
  206.             var request_token_url = 'http://twitter.com/oauth/request_token';
  207.             var authorize_url     = 'http://twitter.com/oauth/authorize';
  208.             var access_token_url  = 'http://twitter.com/oauth/access_token';
  209.             $('#protected_resource').val('http://twitter.com/account/verify_credentials.xml');
  210.             break;
  211.         case 'google':
  212.             var request_token_url = 'https://www.google.com/accounts/OAuthGetRequestToken';
  213.             var authorize_url     = 'https://www.google.com/accounts/OAuthAuthorizeToken';
  214.             var access_token_url  = 'https://www.google.com/accounts/OAuthGetAccessToken';
  215.             $('#protected_resource').val('http://www.google.com/calendar/feeds/default/allcalendars/full?orderby=starttime');
  216.             break;
  217.         case 'yahoo':
  218.             var request_token_url = 'http://api.login.yahoo.com/oauth/v2/get_request_token';
  219.             var authorize_url     = 'https://api.login.yahoo.com/oauth/v2/request_auth';
  220.             var access_token_url  = 'https://api.login.yahoo.com/oauth/v2/get_token';
  221.             $('#protected_resource').val('http://social.yahooapis.com/v1/user/abcdef123/profile?format=json');
  222.             break;
  223.         case 'myspace':
  224.             var request_token_url = 'http://api.myspace.com/request_token';
  225.             var authorize_url     = 'http://api.myspace.com/authorize';
  226.             var access_token_url  = 'http://api.myspace.com/access_token';
  227.             break;
  228.         default:
  229.             alert('Invalid default: ' + $(this).val());
  230.             return false;
  231.             break;
  232.         }
  233.  
  234.         $('#request_token_url').val(request_token_url);
  235.         $('#authorize_url').val(authorize_url);
  236.         $('#access_token_url').val(access_token_url);
  237.  
  238.         return false;
  239.     });
  240.  
  241.     $('.show-code').click(function() {
  242.         $(this).siblings('.code').toggle('fast');
  243.         return false;
  244.     });
  245.  
  246.     function success(msg) {
  247.         $('#success').html(msg).show('fast').vkfade();
  248.         $('#error').hide('fast');
  249.     }
  250.  
  251.     function error(msg) {
  252.         $('#error').html(msg).show('fast').vkfade();
  253.         $('#success').hide('fast');
  254.     }
  255.  
  256.     $('.selector > span').click(function() {
  257.         $(this).addClass('selected');
  258.         $(this).siblings('.selected').removeClass('selected');
  259.         $(this).siblings('input').val(this.innerHTML);
  260.         if ($(this).siblings('input').val() == 'POST') {
  261.             $(this).parent().siblings('.arguments').show();
  262.         } else {
  263.             $(this).parent().siblings('.arguments').hide();
  264.         }
  265.     });
  266.  
  267. });
  268. </script>
  269.  
  270. <div class="settings">
  271.     <form action="" id="settings-form">
  272.     <h2>Settings</h2>
  273.     <div class="defaults">
  274.         <h3>Defaults: </h3>
  275.         <select>
  276.             <option value="myspace">MySpace</option>
  277.             <option value="yahoo">Yahoo!</option>
  278.             <option value="google">Google</option>
  279.             <option value="twitter">Twitter</option>
  280.             <option value="digg">Digg</option>
  281.         </select>
  282.     </div>
  283.     <div class="clear"></div>
  284.  
  285.     <div class="setting">
  286.         <label for="">Consumer Key</label>
  287.         <input type="text" name="consumer_key" id="consumer_key">
  288.     </div>
  289.     <div class="setting">
  290.         <label for="">Consumer Secret</label>
  291.         <input type="text" name="consumer_secret" id="consumer_secret">
  292.     </div>
  293.     <div class="setting">
  294.         <div class="selector">
  295.             <span class="selected">GET</span>
  296.             <span>POST</span>
  297.             <input type="hidden" id="request_token_method" value="GET" />
  298.         </div>
  299.         <label for="">Request Token URL</label>
  300.         <input type="text" name="request_token_url" id="request_token_url">
  301.         <div class="clear"></div>
  302.         <div style="display:none;" class="arguments" id="request_token_arguments">
  303.             <div class="argument">
  304.                 <input type="text" class="argument" value="" id="" placeholder="name...">
  305.                 <input type="text" class="argument" value="" id="" placeholder="value...">
  306.                 <div class="clear"></div>
  307.             </div>
  308.             <a href="#" class="add-argument">Another argument...</a>
  309.         </div>
  310.     </div>
  311.     <div class="setting">
  312.         <label for="">Authorize URL</label>
  313.         <input type="text" value="" id="authorize_url" name="authorize_url">
  314.     </div>
  315.     <div class="setting">
  316.         <div class="selector">
  317.             <span class="selected">GET</span>
  318.             <span>POST</span>
  319.             <input type="hidden" id="access_token_method" value="GET" />
  320.         </div>
  321.         <label for="">Access Token URL</label>
  322.         <input type="text" name="access_token_url" id="access_token_url">
  323.         <div class="clear"></div>
  324.         <div style="display:none;" class="arguments" id="access_token_arguments">
  325.             <div class="argument">
  326.                 <input type="text" class="argument" value="" id="" placeholder="name...">
  327.                 <input type="text" class="argument" value="" id="" placeholder="value...">
  328.                 <div class="clear"></div>
  329.             </div>
  330.             <a href="#" class="add-argument">Another argument...</a>
  331.         </div>
  332.     </div>
  333.     <div class="setting">
  334.         <label for="">Token</label>
  335.         <input type="text" value="" id="token" readonly>
  336.     </div>
  337.     <div class="setting">
  338.         <label for="">Token Secret</label>
  339.         <input type="text" value="" id="token_secret" readonly>
  340.     </div>
  341.     <div class="setting">
  342.         <label for="">Verifier</label>
  343.         <input type="text" value="<?= @$_GET['oauth_verifier']?>" id="verifier">
  344.     </div>
  345.     <div class="setting">
  346.         <div class="selector">
  347.             <span class="selected">GET</span>
  348.             <span>POST</span>
  349.             <input type="hidden" id="protected_resource_method" value="GET" />
  350.         </div>
  351.         <label for="">Protected resource</label>
  352.         <input type="text" name="protected_resource" id="protected_resource_url">
  353.         <div class="clear"></div>
  354.         <div style="display:none;" class="arguments" id="protected_resource_arguments">
  355.             <div class="argument">
  356.                 <input type="text" class="argument" value="" id="" placeholder="name...">
  357.                 <input type="text" class="argument" value="" id="" placeholder="value...">
  358.                 <div class="clear"></div>
  359.             </div>
  360.             <a href="#" class="add-argument">Another argument...</a>
  361.         </div>
  362.         <div class="clear"></div>
  363.     </div>
  364.     </form>
  365. </div>
  366.  
  367. <div id="error">
  368. error
  369. </div>
  370.  
  371. <div class="into-html" id="success">
  372. success
  373. </div>
  374.  
  375. <div class="example">
  376.     <h2>OAuth Example</h2>
  377.     <div class="clear"></div>
  378.     <div class="step">
  379.         <span><a id="fetch_request_token" class="disabled">Fetch request token</a></span>
  380.         <span><a id="open_authorize_url" class="disabled">Open authorize url</a></span>
  381.         <span><a id="fetch_access_token" class="disabled">Fetch access token</a></span>
  382.         <span><a id="oauth_request" class="disabled">OAuth request</a></span>
  383.     </div>
  384.     <div class="code" id="request-token-code">
  385.         <? highlight_file('request_token.php'); ?>
  386.     </div>
  387.     <div class="code" id="authorize-url-code">
  388.         <? highlight_file('authorize_url.php'); ?>
  389.     </div>
  390.     <div class="code" id="access-token-code">
  391.         <? highlight_file('access_token.php'); ?>
  392.     </div>
  393.     <div class="code" id="oauth-request-code">
  394.         <? highlight_file('oauth_request.php'); ?>
  395.     </div>
  396. </div>
  397.  
  398.  
  399. </body>
  400. </html>

Documentation generated on Mon, 11 Mar 2019 15:55:06 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.