@@ -9,24 +9,35 @@ final logoutButton = querySelector("#logout");
99final outputDiv = querySelector ("#output" );
1010final DivElement loginWrapper = querySelector ("#login_wrapper" );
1111final SelectElement approvalPromptInput = querySelector ("#approval_prompt" );
12+ final SelectElement immediateInput = querySelector ("#immediate" );
13+ final SelectElement onlyLoadTokenInput = querySelector ("#onlyLoadToken" );
1214
1315void main () {
1416 // use your own Client ID from the API Console here
1517 final auth = new GoogleOAuth2 (
1618 "796343192238.apps.googleusercontent.com" ,
1719 ["https://www.googleapis.com/auth/books" ]);
1820
21+ outputDiv.innerHtml = "" ;
22+
1923 loginButton.onClick.listen ((e) {
24+ outputDiv.innerHtml = "Loading..." ;
2025 loginButton.disabled = true ;
2126 String approvalPrompt = approvalPromptInput.value;
2227 if (approvalPrompt.isEmpty) {
2328 approvalPrompt = null ;
2429 }
2530 auth.approval_prompt = approvalPrompt;
26- auth.login ()
31+ bool isImmediate = (immediateInput.value == "1" );
32+ bool onlyLoadToken = (onlyLoadTokenInput.value == "1" );
33+ auth.login (immediate: isImmediate, onlyLoadToken: onlyLoadToken)
2734 .then (_oauthReady)
2835 .whenComplete (() {
2936 loginButton.disabled = false ;
37+ })
38+ .catchError ((e) {
39+ outputDiv.innerHtml = e.toString ();
40+ print ("$e " );
3041 });
3142 });
3243
@@ -50,7 +61,10 @@ Future _oauthReady(Token token) {
5061 .then ((HttpRequest request) {
5162 if (request.status == 200 ) {
5263 var data = JSON .decode (request.responseText);
53- outputDiv.innerHtml = "Book info:\n ${data ['volumeInfo' ]['title' ]}" ;
64+ outputDiv.innerHtml = """
65+ <p>Book title: ${data ['volumeInfo' ]['title' ]}</p>
66+ <p>Description:<br> ${data ['volumeInfo' ]['description' ]}</p>
67+ """ ;
5468 } else {
5569 outputDiv.innerHtml = "Error ${request .status }: ${request .statusText }" ;
5670 }
0 commit comments