Я пытаюсь выполнить ручную регистрацию в Facebook в моем приложении, потому что пакет входа в систему fb больше не поддерживается.
Future<void> _loginWithFacebook() async {
Map<String, dynamic> result = await Navigator.push(
context,
MaterialPageRoute(
builder: (context) => CustomWebView(
title: 'Facebook Login',
selectedUrl:
'https://www.facebook.com/dialog/oauth?client_id=$your_cliend_id&redirect_uri=$your_redirect_url&response_type=token&scope=email,public_profile,user_friends',
),
maintainState: true
),
);
if (result != null && result["authToken"] != null) {
print("IT WORKED, THIS IS THE RESULT $result");
} else {
print("THERE WAS AN ERROR $result");
}
}
class CustomWebView extends StatelessWidget {
final String title;
final String selectedUrl;
final Completer<WebViewController> _controller =
Completer<WebViewController>();
CustomWebView({
@required this.title,
@required this.selectedUrl,
});
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
appBar: AppBar(
backgroundColor: Colors.blueAccent,
),
body: WebView(
initialUrl: selectedUrl,
javascriptMode: JavascriptMode.unrestricted,
javascriptChannels: <JavascriptChannel>[
JavascriptChannel(
name: 'Print',
onMessageReceived: (msg) {
Map token = json.decode(msg.message);
Navigator.pop(context, token);
}
),
].toSet(),
gestureRecognizers: Set()
..add(Factory<VerticalDragGestureRecognizer>(
() => VerticalDragGestureRecognizer())),
onWebViewCreated: (WebViewController webViewController) {
_controller.complete(webViewController);
},
)
);
}
}
Если я позвоню по коду, Я могу ввести свой адрес электронной почты и пароль. Но после входа Facebook не передает мне токен.
Что я делаю не так?
Заранее спасибо!