您的位置:一分快三全天精准计划 > 1分快3全天计划官方网站-编程 > 并且获取到个人信息首先在腾讯的开发者平台注

并且获取到个人信息首先在腾讯的开发者平台注

2019-09-09 16:51

qq登录有很多方式,在这里做一个笔记记录一下qq的第三方登录,并且获取到个人信息首先在腾讯的开发者平台注册开发者账号,网上有的说是qq互联,我这里用的是腾讯的开发者平台注册的一个测试的demo链接腾讯开发平台

图片 1 这里获取到了appkey 和 appid,之后要用到新建一个工程,下载qq登录的sdk,并导入相应的jar包。下载地址SDK下载地址 按照网站里面的相关操作,完成基本的配置,我用的是android studio,有点不一样。创建一个工程,并把open-sdk.jar文件和mta_sdk_x.x.x.jar文件拷贝到libs目录下,如下图所示:图片 2

点击右键将jar包同步到工程添加权限

<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

添加Activity到application

<application> <activity android:name="com.tencent.tauth.AuthActivity" android:noHistory="true" android:launchMode="singleTask" ><intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="tencent你的AppId" /> </intent-filter> </activity><application>

上面的APPId记得改写成自己的Appid,在开发者平台申请到的appidtencent不能删,只是改写后面的“你的AppId”。在解压之后的sdk里面,有一个AppConstants接口,把它考入到自己的工程路面,也可以自己写,这里主要就是用到appid的时候调用一下而已,自己写如下:

package com.example.yukun.webapplication;public class AppConstants {// APP_ID 替换为你的应用从官方网站申请到的合法appId//public static final String APP_ID = "wxd930ea5d5a258f4f";public static final String APP_ID="1105698282";//申请的开发appidpublic static final String WX_APP_ID = "wx8e8dc60535c9cd93";public static final String WX_ACTION = "action";public static final String WX_ACTION_INVITE = "invite";public static final String WX_RESULT_CODE = "ret";public static final String WX_RESULT_MSG = "msg";public static final String WX_RESULT = "result";public static class ShowMsgActivity { public static final String STitle = "showmsg_title"; public static final String SMessage = "showmsg_message"; public static final String BAThumbData = "showmsg_thumb_data"; }}

记得修改上面的appid。改为自己的id其他的不用管下面的MainActivity的代码,这里获取到授权,并且获取到个人信息,布局很简单,就是两个按钮,一个imageview显示图片,用的是glide下载的图片,获取到的是头像的uri,自己可以处理。

package com.example.yukun.webapplication;import android.content.Intent;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;import com.bumptech.glide.Glide;import com.tencent.connect.UserInfo;import com.tencent.tauth.IUiListener;import com.tencent.tauth.Tencent;import com.tencent.tauth.UiError;import org.json.JSONException;import org.json.JSONObject;public class QQLoginActivity extends AppCompatActivity {private TextView textView;private Tencent mTencent;private String TAG="QQLoginActivity";private ImageView imageView;private Button button;private Button button1;private IUiListener getQQinfoListener;private TextView textView_name;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login_qq); init();}private void init() { textView_name =  findViewById(R.id.text_name); textView =  findViewById(R.id.text); imageView = (ImageView) findViewById(R.id.image_head); button =  findViewById; button1 =  findViewById(R.id.btn_user); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { LoginQQ; //按钮,获取个人信息 button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { User;}private void LoginQQ() { //这里的APP_ID请换成你应用申请的APP_ID,我这里使用的是DEMO中官方提供的测试APP_ID 222222 String mAppid = AppConstants.APP_ID; //这里就是我们之前写的那个接口,或者拷贝进来的,就是为了获取appid mTencent = Tencent.createInstance(mAppid,this); if (!mTencent.isSessionValid{ mTencent.login(QQLoginActivity.this,"all", new BaseUiListener; }}private class BaseUiListener implements IUiListener { public void onCancel() { // TODO Auto-generated method stub } public void onComplete(Object response) { // TODO Auto-generated method stub Toast.makeText(getApplicationContext(), "登录成功", Toast.LENGTH_LONG).show(); Log.i(TAG,response.toString; try { //获得的数据是JSON格式的,获得你想获得的内容 //如果你不知道你能获得什么,看一下下面的LOG Log.e(TAG, "-------"+response.toString; String openidString = ((JSONObject) response).getString; //显示获取到的openid textView.setText(openidString); //绝对不要能忘记,网上的很多没有这个两句,我试了很久就是没成功,后来发现添加上了这两句,获取个人信息的时候才不会报openid为空 mTencent.setOpenId(openidString); mTencent.setAccessToken(((JSONObject) response).getString("access_token"),((JSONObject) response).getString("expires_in")); } catch (JSONException e) { Log.i(TAG+"---",e.toString; // TODO Auto-generated catch block e.printStackTrace(); } } public void onError(UiError arg0) { // TODO Auto-generated method stub Log.e(TAG, "-111113"+":"+arg0); }}//这里获取到个人信息private void User() { if(mTencent!=null){ UserInfo qqInfo = new UserInfo(QQLoginActivity.this,mTencent.getQQToken; qqInfo.getUserInfo( new IUiListener() { @Override public void onError(UiError arg0) { // TODO Auto-generated method stub Log.i(TAG+"---error", arg0.toString; } /** * 返回用户信息样例 * {"is_yellow_year_vip":"0","ret":0, * "figureurl_qq_1":"http://q.qlogo.cn/qqapp/1104732758/015A22DED93BD15E0E6B0DDB3E59DE2D/40", * "figureurl_qq_2":"http://q.qlogo.cn/qqapp/1104732758/015A22DED93BD15E0E6B0DDB3E59DE2D/100", * "nickname":"蜗牛","yellow_vip_level":"0","is_lost":0,"msg":"", * "city":"成都"," * figureurl_1":"http://qzapp.qlogo.cn/qzapp/1104732758/015A22DED93BD15E0E6B0DDB3E59DE2D/50", * "vip":"0","level":"0", * "figureurl_2":"http://qzapp.qlogo.cn/qzapp/1104732758/015A22DED93BD15E0E6B0DDB3E59DE2D/100", * "province":"四川", * "is_yellow_vip":"0","gender":"男", * "figureurl":"http://qzapp.qlogo.cn/qzapp/1104732758/015A22DED93BD15E0E6B0DDB3E59DE2D/30"} */ @Override public void onComplete(Object arg0) { // TODO Auto-generated method stub if(arg0 == null){ return; } try { //获取到了数据,自己处理,具体的要自己打印出来再看怎么解析,也可以看上面的格式 Log.i(TAG+"--success", arg0.toString; JSONObject jo = (JSONObject) arg0; int ret = jo.getInt; System.out.println("json=" + String.valueOf; String nickName = jo.getString("nickname"); String gender = jo.getString; String city = jo.getString; String province = jo.getString("province"); String figureurl = jo.getString("figureurl_qq_2"); Glide.with(getApplicationContext.load(figureurl).into(imageView); textView_name.setText("姓名:"+nickName+" 性别:"+gender+" 城市:"+province+","+city); } catch (Exception e) { Log.i(TAG+"--success", e.toString; } } @Override public void onCancel; }}//回传页面的数据,不能忘记protected void onActivityResult(int requestCode, int resultCode, Intent data) { Tencent.onActivityResultData(requestCode,resultCode,data,new BaseUiListener; }}

下面是运行之后的效果图:

图片 3 到此就结束了

本文由一分快三全天精准计划发布于1分快3全天计划官方网站-编程,转载请注明出处:并且获取到个人信息首先在腾讯的开发者平台注

关键词:

  • 上一篇:没有了
  • 下一篇:没有了