Red de conocimiento informático - Conocimiento informático - Cómo implementar la interfaz de inicio de sesión de terceros QQ en la aplicación móvil de Android

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;

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.