1. 登录/校验登录态
通过调用Tencent类的login函数发起登录/校验登录态。
该API具有两个作用:
(1)如果开发者没有调用mTencent实例的setOpenId、setAccessToken API,则该API执行正常的登录操作;
(2)如果开发者先调用mTencent实例的setOpenId、setAccessToken API,则该API执行校验登录态的操作。如果登录态有效,则返回成功给应用,如果登录态失效,则会自动进入登录流程,将最新的登录态数据返回给应用。
建议开发者在每次应用启动时调用一次该API(先调用setOpenId、setAccessToken),以确保每次打开应用时用户都是有登录态的。
调用登录API参数说明如下:
activity | 调用者activity。应用使用SDK时,会从应用自己的Activity跳转到SDK的Activity,应用调用SDK的Activity即为这里的调用者activity。 |
scope | 应用需要获得哪些API的权限,由“,”分隔。 例如:SCOPE = “get_user_info,add_topic”;如果要所有,直接用all |
listener | 回调API,IUiListener实例。 |
基本流程就是
所以第一步就是自定义一个Activity:
/** * 登入验证 * * @author tanlvxu * */ public class MainActivity extends Activity implements OnClickListener{ /** * api权限 */ private Handler mHandler; private TextView mBaseMessageText;//打印登入后读取的base信息 private TextView mMessageText;//打印登入后读取的message信息 private Dialog mProgressDialog; //判断是否接收到信息 private Tencent mTencent; //主控制 private EditText mEtAppid = null;// 账号输入框 private ImageView mLoginButton;// 登入按钮 /** * 线程接收 * @param base * @param msg */ private void showResult(final String base, final String msg) { mHandler.post(new Runnable() { @Override public void run() { if (mProgressDialog.isShowing()) mProgressDialog.dismiss(); mBaseMessageText.setText(base); mMessageText.setText(msg); } }); } /** * 信息接收类 * @author tanlvxu * */ private class BaseUiListener implements IUiListener { @Override public void onComplete(Object response) { showResult("onComplete:", response.toString()); doComplete(response); } protected void doComplete(Object values) { } @Override public void onError(UiError e) { showResult("onError:", "code:" + e.errorCode + ", msg:" + e.errorMessage + ", detail:" + e.errorDetail); } @Override public void onCancel() { showResult("onCancel", ""); } } /** * 主函数 */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final Context ctxContext = this.getApplicationContext(); mEtAppid = new EditText(this); /** * app_id输入框 */ new AlertDialog.Builder(this) .setTitle("请输入APP_ID") .setCancelable(false) .setIcon(android.R.drawable.ic_dialog_info) .setView(mEtAppid) .setNegativeButton("取消", new android.content.DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub mTencent = Tencent.createInstance(AppConstants.APP_ID, ctxContext); mHandler = new Handler(); mProgressDialog = new ProgressDialog( MainActivity.this); initViews(); } }) .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String appid = mEtAppid.getText().toString() .trim(); if (!("".equals(appid))) { mTencent = Tencent.createInstance(appid, ctxContext); } else { mTencent = Tencent.createInstance(AppConstants.APP_ID, ctxContext); } mHandler = new Handler(); mProgressDialog = new ProgressDialog( MainActivity.this); initViews(); } }).show(); } /** * 初始化界面 */ private void initViews() { mLoginButton = (ImageView) findViewById(R.id.login_btn); mBaseMessageText = (TextView) findViewById(R.id.base_message_tv); mMessageText = (TextView) findViewById(R.id.message_tv); updateLoginButton(); mLoginButton.setOnClickListener(this) ; } /** * 更新登入状态按钮 */ private void updateLoginButton() { mLoginButton.setImageResource(mTencent.isSessionValid()?R.drawable.com_tencent_open_logout : R.drawable.com_tencent_open_login) ; } @Override public void onClick(View v) { // TODO Auto-generated method stub Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake); switch (v.getId()) { case R.id.login_btn: onClickLogin(); v.startAnimation(shake); break; default : break ; } } private void onClickLogin() { if (mTencent.isSessionValid()) { mTencent.logout(this); updateLoginButton(); } else { IUiListener listener = new BaseUiListener() { @Override protected void doComplete(Object values) { updateLoginButton(); } }; mTencent.login(this, "all", listener);//跳转至sdk登入界面 } } }
跳转至登入界面
登入成功后返回的信息
相关推荐
_storage_emulated_0_android_data_com.tencent.mobileqq_Tencent_QQfile_recv_.TbsReaderTempcom.tencent.mobileqq_83ca8a5fc862397bd03b8fa8d9944926.dat
资源分类:Python库 所属语言:Python 资源全名:tencentcloud-sdk-python-sts-3.0.272.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
com.tencent.mobileqq.21.03.26.23.qlog
com.tencent.mobileqq_TMAssistantDownloadSDKService.21.04.14.10.qlog
资源分类:Python库 所属语言:Python 资源全名:tencentcloud-sdk-python-api-3.0.418.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
2、设置三方登录的类别并赋予一个变量 $type = ThinkOauth::getInstance('qq'); 3、设置配置文件 'THINK_SDK_(TYPE)' => array( 'APP_KEY' => '', //应用注册成功后分配的 APP ID 'APP_SECRET' => '', //应用...
vue 动态生成拓扑图的示例 横向拓扑 在 index.html 文件中引入文件。 <link href="https://magicbox.bk.tencent....
com.tencent.mobileqq.21.03.26.20.qlog
com.tencent.mobileqq.21.04.26.01.qlog
_storage_emulated_0_android_data_com.tencent.mobileqq_Tencent_QQfile_recv_实训四.zip
com.tencent.mobileqq.21.04.25.22.qlog
3. 取得 **APPID**、**SecretId**、**SecretKey**:请前往 [云API密钥](https://console.cloud.tencent.com/cam/capi) ,点击“新建密钥” ## 快速体验 1. 修改文件 src/main/java/...
图书管理系统,C:\Users\ASUS\Documents\Tencent Files\879188838\FileRecv,C:\Users\ASUS\Documents\Tencent Files\879188838\FileRecv
正大杯市场调查与分析大赛开赛在即,本资源为正大杯优秀论文分析 个人制作 对目前官网上公布...https://research.tencent.com/zone/team?tab=report&teamId=681&custom=all_38%2Call_43%2Call_278&page=1&viewType=list
com.tencent.mobileqq_MSF.21.09.21.11.qlog
com.tencent.qqpimsecure.plugin.alice9000901.jar
hucucufcufcrxrcufcucugvvufv
com.tencent.mobileqq.21.04.26.02.qlog
_storage_emulated_0_android_data_com.tencent.mm_MicroMsg_Download_GTA5线上小助手 支持1.54 v2.9.6.5 完全免费.exe
com.tencent.mtt.apkplugin.tmswifi4381.zip