Ganesh
Ganesh

Reputation: 109

Invalid argument (callbackUrlScheme): must be a valid URL scheme

I am using fitbitter 2.0.1 dependency in my flutter application to display fitness related data from fitbit. But I am getting "Invalid argument (callbackUrlScheme): must be a valid URL scheme" as a error. For more details I have given below my flutter code:

import 'package:fitbitter/fitbitter.dart';
import 'package:flutter/material.dart';
import '../utils/strings.dart';

class HomePage extends StatelessWidget 
{
  HomePage({Key? key}) : super(key: key);

  static const route = '/';
  static const routename = 'HomePage';

  @override
  Widget build(BuildContext context) {
    print('${HomePage.routename} built');
    return Scaffold(
      appBar: AppBar(
        title: Text(HomePage.routename),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            ElevatedButton(
              onPressed: () async {
                // Authorize the app and get the Fitbit credentials
                FitbitCredentials? fitbitCredentials =
                    await FitbitConnector.authorize(
                        clientID: Strings.fitbitClientID,// client id recieved from fitbit
                        clientSecret: Strings.fitbitClientSecret,// client secret recieved 
                                                                 //from fitbit
                        redirectUri: Strings.fitbitRedirectUri,// Auth uri recieved from 
                                                               //fitbit
                        callbackUrlScheme: Strings.fitbitCallbackScheme
                );
                print(fitbitCredentials);

                //Instantiate a proper data manager (for example, for SpO2 data)
                FitbitSpO2DataManager fitbitSpO2DataManager =
                    FitbitSpO2DataManager(
                  clientID: Strings.fitbitClientID,
                  clientSecret: Strings.fitbitClientSecret,
                );

                //Fetch yesterday's data
                final spO2Data =
                    await fitbitSpO2DataManager.fetch(FitbitSpO2APIURL.day(
                  date: DateTime.now().subtract(Duration(days: 1)),
                  fitbitCredentials: fitbitCredentials!,
                )) as List<FitbitSpO2Data>;
                print(spO2Data);
                // Use them as you want
                if (spO2Data.isNotEmpty) {
                  final snackBar = SnackBar(
                      content: Text(
                          'Yesterday your SpO2 was ${spO2Data[0].avgValue}% on average!'));
                  ScaffoldMessenger.of(context).showSnackBar(snackBar);
                }
              },
              child: Text('Tap to authorize and fetch data'),
            ),
          ],
        ),
      ),
    );
  }
}

So, please help me to solve this issue so that I can display fitness related data of user in my flutter app and also let me how to create callbackurl for flutter app. Thanks and Regards

Upvotes: 0

Views: 1198

Answers (1)

Nikos Melakis
Nikos Melakis

Reputation: 1

try making redirectUri: name://callback and callbackUrlScheme: name

to get the name go to pubspec.yaml its on first line

Upvotes: 0

Related Questions