title: Using app engine oauth service
body: <p>I'm trying to authenticate a python command line script agains my app engine application using oauth.</p>
  
  <p>I'm following <a href="http://code.google.com/appengine/docs/python/oauth/overview.html" rel="nofollow">these</a> instructions but I still don't get the "big picture" of how it works.</p>
  
  <p>Is this api "ready to use"? or should I implement the request handlers for the oauth process?.</p>
  
  <p>So far, I have my app deployed and I'm using this <a href="https://github.com/leah/python-oauth" rel="nofollow">oauth</a> library, I'm trying <a href="https://github.com/leah/python-oauth/blob/master/oauth/example/client.py" rel="nofollow">this</a> example with the following values:</p>
  
  <pre><code>SERVER = 'myapp.appspot.com'
  PORT = 443 # Also tried 80
  
  REQUEST_TOKEN_URL = '/_ah/OAuthGetRequestToken'
  ACCESS_TOKEN_URL = '/_ah/OAuthGetAccessToken'
  AUTHORIZATION_URL = '/_ah/OAuthAuthorizeToken'
  CALLBACK_URL = 'oob'
  RESOURCE_URL = 'http://myapp.appspot.com/'
  
  CONSUMER_KEY = 'myapp.appspot.com'
  CONSUMER_SECRET = 'AaB8BtzxM7Dr7wz9Dxc5y6gG'
  </code></pre>
  
  <p>Do I have to implement any request handler on the server side? Do I have to enable this api somewhere?</p>
  
  <p>Thanks for any clarification.</p>
  
  <p><strong>EDIT</strong>: Here is the output of the client script running:</p>
  
  <pre><code>$ python test.py ** OAuth Python Library Example **
  
  * Obtain a request token ...
  
  REQUEST (via headers)
  parameters: {'oauth_nonce': '64747931', 'oauth_timestamp': 1325595310, 'oauth_consumer_key': 'myapp.appspot.com', 'oauth_signature_method': 'HMAC-SHA1', 'oauth_version': '1.0', 'oauth_signature': 'rBMJdn8+n0yXei38tDMfHjYKxyM=', 'oauth_callback': 'oob'}
  </code></pre>
  
  <p>And the response I'm getting is:</p>
  
  <pre><code>&lt;html&gt;&lt;head&gt;
  &lt;meta http-equiv="content-type" content="text/html;charset=utf-8"&gt;
  &lt;title&gt;400 Bad Request&lt;/title&gt;
  &lt;/head&gt;
  &lt;body text=#000000 bgcolor=#ffffff&gt;
  &lt;h1&gt;Error: Bad Request&lt;/h1&gt;
  &lt;h2&gt;Your client has issued a malformed or illegal request.&lt;/h2&gt;
  &lt;h2&gt;&lt;/h2&gt;
  &lt;/body&gt;&lt;/html&gt;
  </code></pre>