Open Mallikarjun7657 opened 3 years ago
While implementing oauth1 getting error after fetching ResourceOwnerAuthorizationURI.
Invoking the below function to perform oauth1 flow
`void authorizeOAuth1() async { try { // request temporary credentials (request tokens) auth.requestTemporaryCredentials('oob').then((res) { // redirect to authorization page print("Open with your browser: ${auth.getResourceOwnerAuthorizationURI(res.credentials.token)}");
// get verifier (PIN) stdout.write("PIN: "); String verifier = stdin.readLineSync(); // request token credentials (access tokens) return auth.requestTokenCredentials(res.credentials, verifier); }).then((res) { // yeah, you got token credentials // create Client object var client = new oauth1.Client(platform.signatureMethod, clientCredentials, res.credentials); // now you can access to protected resources via client client.get('https://example.com/dailies').then((res) { print(res.body); }); // NOTE: you can get optional values from AuthorizationResponse object print("Your screen name is " + res.optionalParameters['screen_name']); }); }catch(error, printStackTrace) { print('Exception => $error \n ${printStackTrace.toString()}'); }
}`
I/flutter (20805): Open with your browser: https://connect.garmin.com/oauthConfirm?oauth_token=81cd6ccb-ce41-408e-b1f5-609b141241d3 E/flutter (20805): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: NoSuchMethodError: The getter 'length' was called on null. E/flutter (20805): Receiver: null E/flutter (20805): Tried calling: length E/flutter (20805): #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5) E/flutter (20805): #1 _Uri._uriEncode (dart:core-patch/uri_patch.dart:44:23) E/flutter (20805): #2 Uri.encodeComponent (dart:core/uri.dart:1065:17) E/flutter (20805): #3 AuthorizationHeader._encodeParam (package:oauth1/src/authorization_header.dart:70:16) E/flutter (20805): #4 AuthorizationHeader._createSignature. (package:oauth1/src/authorization_header.dart:96:40) E/flutter (20805): #5 _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:377:8) E/flutter (20805): #6 AuthorizationHeader._createSignature (package:oauth1/src/authorization_header.dart:95:12) E/flutter (20805): #7 AuthorizationHeader.toString (package:oauth1/src/authorization_header.dart:53:35) E/flutter (20805): #8 Authorization.requestTokenCredentials (package:oauth1/src/authorization.dart:90:64) E/flutter (20805): #9 _GarminAuthScreenState.authorizeOAuth1. (package:wear_poc/garmin/garmin_authentication_screen.dart:102:21) E/flutter (20805): #10 _rootRunUnary (dart:async/zone.dart:1198:47) E/flutter (20805): #11 _CustomZone.runUnary (dart:async/zone.dart:1100:19) E/flutter (20805): #12 _FutureListener.handleValue (dart:async/future_impl.dart:143:18) E/flutter (20805): #13 Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:696:45) E/flutter (20805): #14 Future._propagateToListeners (dart:async/future_impl.dart:725:32) E/flutter (20805): #15 Future._completeWithValue (dart:async/future_impl.dart:529:5) E/flutter (20805): #16 _AsyncAwaitCompleter.complete (dart:async-patch/async_patch.dart:40:15) E/flutter (20805): #17 _completeOnAsyncReturn (dart:async-patch/async_patch.dart:311:13) E/flutter (20805): #18 Authorization.requestTemporaryCredentials (package:oauth1/src/authorization.dart) E/flutter (20805): E/flutter (20805): #19 _GarminAuthScreenState.authorizeOAuth1 (package:wear_poc/garmin/garmin_authentication_screen.dart:93:12) E/flutter (20805): #20 _GarminAuthScreenState.build. (package:wear_poc/garmin/garmin_authentication_screen.dart:53:19) E/flutter (20805): #21 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:993:19) E/flutter (20805): #22 _InkResponseState.build. (package:flutter/src/material/ink_well.dart:1111:38) E/flutter (20805): #23 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:183:24) E/flutter (20805): #24 TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:598:11) E/flutter (20805): #25 BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:287:5) E/flutter (20805): #26 BaseTapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:222:7) E/flutter (20805): #27 PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:476:9) E/flutter (20805): #28 PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:77:12) E/flutter (20805): #29 PointerRouter._dispatchEventToRoutes. (package:flutter/src/gestures/pointer_router.dart:122:9) E/flutter (20805): #30 _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:377:8) E/flutter (20805): #31 PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.dart:120:18) E/flutter (20805): #32 PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:106:7) E/flutter (20805): #33 GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:358:19) E/flutter (20805): #34 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:338:22) E/flutter (20805): #35 RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:267:11) E/flutter (20805): #36 GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:295:7) E/flutter (20805): #37 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:240:7) E/flutter (20805): #38 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:213:7) E/flutter (20805): #39 _rootRunUnary (dart:async/zone.dart:1206:13) E/flutter (20805): #40 _CustomZone.runUnary (dart:async/zone.dart:1100:19) E/flutter (20805): #41 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7) E/flutter (20805): #42 _invoke1 (dart:ui/hooks.dart:265:10) E/flutter (20805): #43 _dispatchPointerDataPacket (dart:ui/hooks.dart:174:5)
Change String verifier = stdin.readLineSync(); to String verifier = stdin.readLineSync() ?? '';
String verifier = stdin.readLineSync();
String verifier = stdin.readLineSync() ?? '';
While implementing oauth1 getting error after fetching ResourceOwnerAuthorizationURI.
Invoking the below function to perform oauth1 flow
`void authorizeOAuth1() async { try { // request temporary credentials (request tokens) auth.requestTemporaryCredentials('oob').then((res) { // redirect to authorization page print("Open with your browser: ${auth.getResourceOwnerAuthorizationURI(res.credentials.token)}");
}`
Below is the output from console
I/flutter (20805): Open with your browser: https://connect.garmin.com/oauthConfirm?oauth_token=81cd6ccb-ce41-408e-b1f5-609b141241d3 E/flutter (20805): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: NoSuchMethodError: The getter 'length' was called on null. E/flutter (20805): Receiver: null E/flutter (20805): Tried calling: length E/flutter (20805): #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5) E/flutter (20805): #1 _Uri._uriEncode (dart:core-patch/uri_patch.dart:44:23) E/flutter (20805): #2 Uri.encodeComponent (dart:core/uri.dart:1065:17) E/flutter (20805): #3 AuthorizationHeader._encodeParam (package:oauth1/src/authorization_header.dart:70:16) E/flutter (20805): #4 AuthorizationHeader._createSignature. (package:oauth1/src/authorization_header.dart:96:40)
E/flutter (20805): #5 _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:377:8)
E/flutter (20805): #6 AuthorizationHeader._createSignature (package:oauth1/src/authorization_header.dart:95:12)
E/flutter (20805): #7 AuthorizationHeader.toString (package:oauth1/src/authorization_header.dart:53:35)
E/flutter (20805): #8 Authorization.requestTokenCredentials (package:oauth1/src/authorization.dart:90:64)
E/flutter (20805): #9 _GarminAuthScreenState.authorizeOAuth1. (package:wear_poc/garmin/garmin_authentication_screen.dart:102:21)
E/flutter (20805): #10 _rootRunUnary (dart:async/zone.dart:1198:47)
E/flutter (20805): #11 _CustomZone.runUnary (dart:async/zone.dart:1100:19)
E/flutter (20805): #12 _FutureListener.handleValue (dart:async/future_impl.dart:143:18)
E/flutter (20805): #13 Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:696:45)
E/flutter (20805): #14 Future._propagateToListeners (dart:async/future_impl.dart:725:32)
E/flutter (20805): #15 Future._completeWithValue (dart:async/future_impl.dart:529:5)
E/flutter (20805): #16 _AsyncAwaitCompleter.complete (dart:async-patch/async_patch.dart:40:15)
E/flutter (20805): #17 _completeOnAsyncReturn (dart:async-patch/async_patch.dart:311:13)
E/flutter (20805): #18 Authorization.requestTemporaryCredentials (package:oauth1/src/authorization.dart)
E/flutter (20805):
E/flutter (20805): #19 _GarminAuthScreenState.authorizeOAuth1 (package:wear_poc/garmin/garmin_authentication_screen.dart:93:12)
E/flutter (20805): #20 _GarminAuthScreenState.build. (package:wear_poc/garmin/garmin_authentication_screen.dart:53:19)
E/flutter (20805): #21 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:993:19)
E/flutter (20805): #22 _InkResponseState.build. (package:flutter/src/material/ink_well.dart:1111:38)
E/flutter (20805): #23 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:183:24)
E/flutter (20805): #24 TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:598:11)
E/flutter (20805): #25 BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:287:5)
E/flutter (20805): #26 BaseTapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:222:7)
E/flutter (20805): #27 PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:476:9)
E/flutter (20805): #28 PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:77:12)
E/flutter (20805): #29 PointerRouter._dispatchEventToRoutes. (package:flutter/src/gestures/pointer_router.dart:122:9)
E/flutter (20805): #30 _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:377:8)
E/flutter (20805): #31 PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.dart:120:18)
E/flutter (20805): #32 PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:106:7)
E/flutter (20805): #33 GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:358:19)
E/flutter (20805): #34 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:338:22)
E/flutter (20805): #35 RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:267:11)
E/flutter (20805): #36 GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:295:7)
E/flutter (20805): #37 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:240:7)
E/flutter (20805): #38 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:213:7)
E/flutter (20805): #39 _rootRunUnary (dart:async/zone.dart:1206:13)
E/flutter (20805): #40 _CustomZone.runUnary (dart:async/zone.dart:1100:19)
E/flutter (20805): #41 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
E/flutter (20805): #42 _invoke1 (dart:ui/hooks.dart:265:10)
E/flutter (20805): #43 _dispatchPointerDataPacket (dart:ui/hooks.dart:174:5)