Honey Cake Asked:2020-12-13 08:37:20 +0000 UTC2020-12-13 08:37:20 +0000 UTC 2020-12-13 08:37:20 +0000 UTC Flutter 中的 Steam 身份验证 772 有趣的是在 Flutter 应用程序中通过 Steam 进行身份验证并返回 steamid 的可能性。 flutter 1 个回答 Voted Best Answer MiT 2020-12-13T16:51:46Z2020-12-13T16:51:46Z 首先您需要在Steam Web API中注册。 使用openid_client和url_launcher 插件,它会是这样的(我没有检查,它可能需要最终确定,请参阅这些插件和Steam API的文档。): import 'package:flutter/material.dart'; import 'package:openid_client/openid_client.dart'; import 'package:openid_client/openid_client_io.dart'; import 'package:url_launcher/url_launcher.dart'; void main() { WidgetsFlutterBinding.ensureInitialized(); runApp(MaterialApp( home: Scaffold( body: HomePage(), ))); } class HomePage extends StatefulWidget { @override _HomePageState createState() => _HomePageState(); } class _HomePageState extends State<HomePage> { @override Widget build(BuildContext context) { return Center( child: FutureBuilder( future: authenticate(Uri.parse("http://steamcommunity.com/openid"), "id", "key"), builder: (context, snap) { if (snap.connectionState == ConnectionState.none && snap.hasData == null) { //print('snapshot data is: ${snap.data}'); return Container(); } return ListView.builder( itemCount: snap.data.length, itemBuilder: (context, index) { var data = snap.data[index]; return Column( children: <Widget>[ // Widget to display the list of data ], ); }, ); }), ); } authenticate(Uri uri, String clientId, String clientSecret) async { // create the client var issuer = await Issuer.discover(uri); var client = new Client(issuer, clientId, clientSecret); // create a function to open a browser with an url urlLauncher(String url) async { if (await canLaunch(url)) { await launch(url, forceWebView: true); } else { throw 'Could not launch $url'; } } // create an authenticator var authenticator = new Authenticator(client, urlLancher: urlLauncher); // starts the authentication var c = await authenticator.authorize(); // close the webview when finished closeWebView(); // return the user info return await c.getUserInfo(); } } List<String> scopes = new List<String>(); 或者通过调用和处理以方便您的格式使用Steam Web API :http://api.steampowered.com/<interface name>/<method name>/v<version>/?key=<api key>&format=<format>
首先您需要在Steam Web API中注册。
使用openid_client和url_launcher 插件,它会是这样的(我没有检查,它可能需要最终确定,请参阅这些插件和Steam API的文档。):
或者通过调用和处理以方便您的格式使用Steam Web API :
http://api.steampowered.com/<interface name>/<method name>/v<version>/?key=<api key>&format=<format>