android openid steam

inicio de sesión de Steam utilizando OpenID en Android



(1)

Soy nuevo en el desarrollo de Android. mi proyecto es hacer una aplicación usando la API pública de Steam pero no pude averiguar cómo permitir que el usuario inicie sesión usando la cuenta de Steam.

La documentación de la API web de Steam indica que debo usar openID, por lo que busqué mucho para encontrar un ejemplo que implemente openID en una aplicación de Android, pero this es el único ejemplo que encontré y no funciona, el webView simplemente se queda en blanco.

solo quiero que el usuario haga clic en un botón de inicio de sesión que activa una vista web donde el usuario puede iniciar sesión y luego recuperar su ID de Steam.

entonces mi pregunta es

  1. ¿Hay alguna manera de implementar el inicio de sesión de openID en Android?
  2. Si no, ¿hay alguna forma de permitir al usuario iniciar sesión en Steam?

Creo que descubrí algún tipo de solución, supongo.

El openid de vapor se puede utilizar con una solicitud de URL como esta:

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/

donde REALM_PARAM es el sitio web que aparecerá en la pantalla de inicio de sesión. Además, el usuario será redirigido a ese sitio web una vez que se haya completado la autenticación, no tiene que existir realmente. Todo lo que tienes que hacer después de eso es analizar la nueva URL para la identificación del usuario.

Así que usé algo como esto

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); } }