在Android中使用openID进行蒸汽login

Iam新的android开发。 我的项目是使用蒸汽公共API的应用程序,但我不知道如何让用户使用蒸汽帐户login。

Steam的web API文档声明我应该使用openID,所以我search了很多,以find一个实例openID在一个andorid应用程序,但这是唯一的例子,我发现,它不工作,webView只是空白。

我只想让用户点击一个loginbutton,该button会触发一个用户可以login的webView,然后返回蒸汽ID。

所以我的问题是

  1. 有没有办法在android中实现openIDlogin?
  2. 如果没有,是否有允许用户login蒸汽?

Solutions Collecting From Web of "在Android中使用openID进行蒸汽login"

我想我发现了一些解决办法。

steam openid可以像这样使用一个url请求:

https://steamcommunity.com/openid/login? openid.claimed_id=http://specs.openid.net/auth/2.0/identifier_select& openid.identity=http://specs.openid.net/auth/2.0/identifier_select& openid.mode=checkid_setup& openid.ns=http://specs.openid.net/auth/2.0& openid.realm=https://REALM_PARAM& openid.return_to=https://REALM_PARAM/signin/ 

其中REALM_PARAM是将出现在login屏幕上的网站,并且在authentication完成之后用户将被redirect到该网站,其不必实际存在。 所有你必须做的之后是parsing用户ID的新url。

所以我使用了这样的东西

 public class LoginActivity extends ActionBarActivity { // The string will appear to the user in the login screen // you can put your app's name final String REALM_PARAM = "YourAppName"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final WebView webView = new WebView(this); webView.getSettings().setJavaScriptEnabled(true); final Activity activity = this; webView.setWebViewClient(new WebViewClient() { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { //checks the url being loaded setTitle(url); Uri Url = Uri.parse(url); if(Url.getAuthority().equals(REALM_PARAM.toLowerCase())){ // That means that authentication is finished and the url contains user's id. webView.stopLoading(); // Extracts user id. Uri userAccountUrl = Uri.parse(Url.getQueryParameter("openid.identity")); String userId = userAccountUrl.getLastPathSegment(); // Do whatever you want with the user's steam id }); setContentView(webView); // Constructing openid url request String url = "https://steamcommunity.com/openid/login?" + "openid.claimed_id=http://specs.openid.net/auth/2.0/identifier_select&" + "openid.identity=http://specs.openid.net/auth/2.0/identifier_select&" + "openid.mode=checkid_setup&" + "openid.ns=http://specs.openid.net/auth/2.0&" + "openid.realm=https://" + REALM_PARAM + "&" + "openid.return_to=https://" + REALM_PARAM + "/signin/"; webView.loadUrl(url); } }