android 登录qq接口开发,三方登录-QQ登录开发-Android(as版本)

腾讯开放平台API

一、导入jar文件

a95b74fc1b8f66efc19c2d02933ea65d.png

gradle配置:

compile files('libs/open_sdk_r5923_lite.jar')

二、 配置AndroidManifest

在应用的AndroidManifest.xml增加配置的节点下增加以下配置(注:不配置将会导致无法调用API);

SDK_V2.0引入了AssistActivity,开发者需在androidManifest.xml中注册。代码如下:

通过以上两个步骤,工程就已经配置完成了。接下来就可以在代码里使用QQ互联的SDK进行开发了。

三、创建实例并实现回调

建议在Application中配置全局的比较实用

public class MyApplication extendsApplication {

public static Tencent mTencent;

public static Tencent getmTencent() {

return mTencent;

}

public static void setmTencent(Tencent mTencent) {

SkyPineApplication.mTencent = mTencent;

}

@Override

public void onCreate() {

super.onCreate();

// Tencent类是SDK的主要实现类,开发者可通过Tencent类访问腾讯开放的OpenAPI。

// 其中APP_ID是分配给第三方应用的appid,类型为String。

mTencent = Tencent.createInstance(ConfigurationSettings.TENCENT_APP_ID, this.getApplicationContext());

}

接下来就是直接登录、获取用户信息即可

登录

/**

* qq

* scope 应用需要获得哪些API的权限,由“,”分隔。

* 例如:SCOPE = “get_user_info,add_t”;所有权限用“all”

*/

public static final String ACOPE_ALL = "all";

BaseUiListener listener;

public void login() {

listener = new BaseUiListener();

if (!mTencent.isSessionValid()) {

mTencent.login(this, ACOPE_ALL, listener);

}

}

登录回调

private class BaseUiListener implements IUiListener {

@Override

public void onComplete(Object value) {

Log.e(TAG, value.toString());

//{"ret":0,"openid":"1BD6DE05A2A48E3AFF3905766855C30C","access_token":"072A085194740A54A85EA555D3AFE7EB",

// "pay_token":"765794D8CB4DFE50B743E98A9BBFC239","expires_in":7776000,"pf":"desktop_m_qq-10000144-android-2002-",

// "pfkey":"20d22c7e64c46aa138b69b5ebe89511a","msg":"","login_cost":493,"query_authority_cost":118,"authority_cost":24924}

try {

JSONObject jsonObject = (JSONObject) value;

int ret = jsonObject.getInt("ret");

if (ret == 0) {

showMessage("login success");

//此处登录授权成功

String openId = jsonObject.getString(PARAM_OPEN_ID);

String access_token = jsonObject.getString(PARAM_ACCESS_TOKEN);

String expires = jsonObject.getString(PARAM_EXPIRES_IN);

mTencent.setOpenId(openId);

mTencent.setAccessToken(access_token, expires);

//获取用户信息

getUserInfo();

} else {

showMessage("login failed");

}

} catch (JSONException e) {

e.printStackTrace();

}

}

@Override

public void onError(UiError uiError) {

Log.e(TAG, uiError.errorMessage);

showMessage("falied");

}

@Override

public void onCancel() {

Log.e(TAG, "cancel");

showMessage("cancel");

}

}

用户信息

private void getUserInfo() {

UserInfo info = new UserInfo(LoginActivity.this, mTencent.getQQToken());

info.getUserInfo(new IUiListener() {

@Override

public void onComplete(Object value) {

JSONObject jsonObject = (JSONObject) value;

Log.e(TAG, jsonObject.toString());

}

@Override

public void onError(UiError uiError) {

Log.e(TAG, uiError.errorMessage);

}

@Override

public void onCancel() {

}

});

}

调用QQ注销接口

public void logout()

{

mTencent.logout(this);

}

特别注意

应用调用Andriod_SDK接口时,如果要成功接收到回调,需要在调用接口的Activity的onActivityResult方法中增加如下代码:

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

Tencent.onActivityResultData(requestCode,resultCode,data,listener);

}

其中onActivityResultData接口中的listener为当前调用的Activity所实现的相应回调UIListener。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值