Allow setting the response_type in OAuth2WebServerFlow.
Reviewed in https://codereview.appspot.com/6749066/.
Fixes issue #201.
diff --git a/oauth2client/client.py b/oauth2client/client.py
index 851b639..dc9bc89 100644
--- a/oauth2client/client.py
+++ b/oauth2client/client.py
@@ -1017,6 +1017,10 @@
                **kwargs):
     """Constructor for OAuth2WebServerFlow.
 
+    The kwargs argument is used to set extra query parameters on the
+    auth_uri. For example, the access_type and approval_prompt
+    query parameters can be set via kwargs.
+
     Args:
       client_id: string, client identifier.
       client_secret: string client secret.
@@ -1044,6 +1048,7 @@
     self.token_uri = token_uri
     self.params = {
         'access_type': 'offline',
+        'response_type': 'code',
         }
     self.params.update(kwargs)
 
@@ -1070,7 +1075,6 @@
       raise ValueError('The value of redirect_uri must not be None.')
 
     query = {
-        'response_type': 'code',
         'client_id': self.client_id,
         'redirect_uri': self.redirect_uri,
         'scope': self.scope,
diff --git a/tests/test_oauth2client.py b/tests/test_oauth2client.py
index be94fa1..8f855d4 100644
--- a/tests/test_oauth2client.py
+++ b/tests/test_oauth2client.py
@@ -256,22 +256,23 @@
     self.assertEqual(OOB_CALLBACK_URN, q['redirect_uri'][0])
     self.assertEqual('offline', q['access_type'][0])
 
-  def test_override_flow_access_type(self):
-    """Passing access_type overrides the default."""
+  def test_override_flow_via_kwargs(self):
+    """Passing kwargs to override defaults."""
     flow = OAuth2WebServerFlow(
         client_id='client_id+1',
         client_secret='secret+1',
         scope='foo',
         redirect_uri=OOB_CALLBACK_URN,
         user_agent='unittest-sample/1.0',
-        access_type='online'
+        access_type='online',
+        response_type='token'
         )
     authorize_url = flow.step1_get_authorize_url()
 
     parsed = urlparse.urlparse(authorize_url)
     q = parse_qs(parsed[4])
     self.assertEqual('client_id+1', q['client_id'][0])
-    self.assertEqual('code', q['response_type'][0])
+    self.assertEqual('token', q['response_type'][0])
     self.assertEqual('foo', q['scope'][0])
     self.assertEqual(OOB_CALLBACK_URN, q['redirect_uri'][0])
     self.assertEqual('online', q['access_type'][0])