Fitbitter 2.0.1报错Invalid argument(callbackUrlScheme)及回调URL创建求助
解决Fitbitter 2.0.1的"Invalid argument (callbackUrlScheme)"错误及回调URL配置指南
错误原因
callbackUrlScheme参数不符合URL scheme的规范要求:
- 必须以字母开头,仅包含**字母、数字、+、-、.**字符
- 不能包含
://后缀,也不能使用http/https这类通用协议名 - 必须和Fitbit开发者后台配置的重定向URI的scheme部分完全匹配
步骤1:定义合法的Callback Scheme
在strings.dart中设置合规的scheme与完整重定向URI,示例:
class Strings { static const fitbitClientID = '你的Fitbit客户端ID'; static const fitbitClientSecret = '你的Fitbit客户端密钥'; static const fitbitCallbackScheme = 'myfitbitapp'; // 自定义合法scheme static const fitbitRedirectUri = 'myfitbitapp://callback'; // 完整重定向URI }
步骤2:配置Fitbit开发者后台
- 登录Fitbit开发者控制台,进入你的应用详情页
- 在OAuth 2.0 Settings区域,找到**Redirect URI(s)**字段
- 添加你定义的
fitbitRedirectUri(如myfitbitapp://callback)并保存
步骤3:配置Flutter应用的平台支持
Android配置
在android/app/src/main/AndroidManifest.xml的<activity>标签内添加intent-filter,用于捕获回调:
<intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <!-- 匹配你的redirectUri --> <data android:scheme="myfitbitapp" android:host="callback" /> </intent-filter>
iOS配置
在ios/Runner/Info.plist中添加URL Scheme配置:
<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>myfitbitapp</string> <!-- 对应你的callbackUrlScheme --> </array> </dict> </array>
步骤4:验证代码调用
确保FitbitConnector.authorize的参数完全匹配配置:
FitbitCredentials? fitbitCredentials = await FitbitConnector.authorize( clientID: Strings.fitbitClientID, clientSecret: Strings.fitbitClientSecret, redirectUri: Strings.fitbitRedirectUri, callbackUrlScheme: Strings.fitbitCallbackScheme // 仅传纯scheme,不带://和后续路径 );
完成以上配置后,重新运行应用,授权流程即可正常触发,回调也能被正确捕获,进而获取Fitbit数据。
内容的提问来源于stack exchange,提问作者Ganesh
相关产品推荐
相关产品推荐

