Cómo implementar la interfaz de inicio de sesión de terceros QQ en la aplicación móvil de Android
Solicitar APPID
¿Ingresar al sitio web oficial de QQ Internet?
Crear una aplicación móvil en el centro de gestión.
Una vez completada la creación, podrá obtener el APPID.
Y en el número de prueba del colaborador a continuación, complete el número QQ utilizado para la prueba de aplicación de control.
Importar paquete Jar
Importe el paquete Jar descargado al proyecto y regístrelo en el archivo AndroidManifest.xml.
lt; actividad
android: name="com.tencent.tauth.AuthActivity"
android: noHistory="true"
android: launchMode="singleTask" gt;
lt; filtro de intención
lt; acción android: name="android.intent.action.VIEW" /gt;
lt; categoría android: nombre="android.intent.category.DEFAULT" /gt;
lt; categoría android: nombre="android.intent.category.BROWSABLE" / gt ;
lt;data android:scheme="tencent100546930" /gt;
lt;/intent-filtergt;
lt;/activitygt; p >
Entre ellos, los números en data android:scheme="tencent100546930" /gt deben reemplazarse con el APPID que solicitó.
Crear interfaz de inicio de sesión
Todas las llamadas a la interfaz del SDK pasarán una devolución de llamada para recibir los resultados de la llamada devueltos por el SDK. Hay dos interfaces principales para las devoluciones de llamada:
(1)?IUiListener: cuando se llama a interfaces que han sido encapsuladas por el SDK, como: inicio de sesión, inicio de sesión de pago rápido, uso compartido de aplicaciones, invitación a aplicaciones y otras interfaces.
(2)?IRequestListener: cuando se utiliza requestAsync, request y otros métodos comunes para llamar a la interfaz no encapsulada del SDK, como cargar imágenes, ver álbumes de fotos, etc.
Cree aquí la interfaz IUiListener para implementar la operación de autorización de inicio de sesión correspondiente:
private void onClickLogin() {
if (!mTencent.isSessionValid()) {
IUiListener oyente = new IUiListener() {
/** Devolución de llamada por error de autorización*/
@Override
public void onError ( UiError arg0) {
// TODO Código auxiliar de método generado automáticamente
Toast.makeText(LoginActivity.this, "Error de autorización", 1000).show();
Mensaje msg = nuevo Mensaje();
msg.arg1 = 2
handler.sendMessage(msg); >
/** Devolución de llamada para autorización exitosa*/
@Override
public void onComplete(JSONObject arg0) {
// TODO Generado automáticamente trozo de método
Toast.makeText(LoginActivity.this, "Autorización exitosa", 1000).show();
Mensaje msg = nuevo mensaje();
msg.what = 2;
msg.arg1 = 1;
msg.obj = arg0
handler.sendMessage(msg); >
}
/** Devolución de llamada de cancelación de autorización*/
@Override
public void onCancel() {
/ / TODO Código auxiliar de método generado automáticamente
Toast.makeText(LoginActivity.this, "Cancel Authorization", 1000).show();
Message msg = new Message();
msg.arg1 = 3;
handler.sendMessage(msg)
}
; mTencent.login(this, ALCANCE, oyente);
} else {
mTencent.logout(this
}
}
Entre ellos, mTencent es una instancia de la clase Tencent que QQSDK implementa principalmente.
// La clase Tencent es la clase de implementación principal del SDK. Los desarrolladores pueden acceder a OpenAPI de Tencent a través de la clase Tencent.
// APP_ID es el appid asignado a la aplicación de terceros y el tipo es String.
mTencent = Tencent.createInstance(APP_ID, this.getApplicationContext());
Crear instancia del controlador
handler = new Handler(this);
E implemente la interfaz Callback en la clase para realizar operaciones de procesamiento del controlador en la clase anterior.
@Override
public boolean handleMessage(Message msg) {
// TODO Código auxiliar de método generado automáticamente
switch (msg. arg1) {
caso 1: { // Éxito
objeto JSONObject = (JSONObject) msg.obj
prueba {
openid = object.getString("openid").toString();
sBuilder.append("openid es: " openid "\n");
access_token = object.getString ("access_token").toString();
url = url "?access_token=" access_token "amp; oauth_consumer_key=" APP_ID
"amp; openid=" openid "amp; format=json";
new MyUrlThread(url.toString(), 2, sHandler).start();
} catch (JSONException e) {
// TODO Bloque de captura generado automáticamente
e.printStackTrace();
}
}
break;
caso 2: { // Error
Toast.makeText(this, "", Toast.LENGTH_SHORT).show();
devuelve falso;
}
caso 3: { // Cancelar
Toast.makeText(this, "", Toast.LENGTH_SHORT).show();
devolver falso
}
}
devolver falso
}
Si la autorización es exitosa, puede obtener el Openid devuelto.
Por lo tanto, la interfaz oficial proporcionada por Tencent se puede llamar según Openid para implementar las operaciones requeridas.