【发布时间】:2020-11-19 02:52:47
【问题描述】:
我正在尝试从 Facebook 获取数据。 http.get() 返回 Future
如何在我的代码中返回变量 graphResponse,这是一个 Future
class FetchFB {
final String url;
final String token;
FetchFB({@required this.url, @required this.token});
Future<http.Response> fetchData() async {
http.Response graphResponse = await http.get('$url$token');
print(graphResponse);
return graphResponse;
}
dynamic jsonExtractor(dynamic dataResponse) async {
return await jsonDecode(dataResponse);
}
}
在 main.dart 中
String url = 'https://graph.facebook.com/v7.0/me?fields=';
String tok = '0BTkTGrLtBgsp35WQZDZD';
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
final bool _loggedIn = false;
final fbLogin = FacebookLogin();
void flogin() async {
final result = await fbLogin.logIn(['email']);
final token = result.accessToken.token; // Not used for the the time being
FetchFB data = FetchFB(url: url, token: tok);
var fb = data.fetchData();
var fb1 = data.jsonExtractor(fb);
print(fb1);
}
@override
Widget build(BuildContext context) {
return Center(
child: Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Center(
child: OutlineButton(
onPressed: () {
flogin();
},
child: Text('FaceBook'),
),
)
],
),
),
);
}
}
【问题讨论】:
-
更新您的问题,正确解释您想要实现的目标以及您从哪里获得异常?
-
@ZeeshanHussain 我编辑了,请再看看。谢谢
-
你仍然没有显示这个调用是在哪里完成的
-
一旦你显示你在哪里调用 fetchData() 函数,我会更新我的答案。
-
@ZeeshanHussain 我已经更新了主题。请看一看。