关于TencentQQ互联
来源:互联网 发布:内存卡恢复数据软件 编辑:程序博客网 时间:2024/06/10 05:33
package com.example;import org.json.JSONException;import org.json.JSONObject;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.os.Handler.Callback;import android.os.Message;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import com.auth.login.util.ConfigUtil;import com.tencent.tauth.IUiListener;import com.tencent.tauth.Tencent;import com.tencent.tauth.UiError;/** * 登陆测试界面 * * @author WLei * */public class AuthLoginActivity extends Activity implements OnClickListener,Callback {private Button btn_qq_login;private Tencent mTencent;// Tencent入口类,通过该类调用Tencent open APIprivate Handler handler;// 处理线程private String SCOPE = "get_simple_userinfo,add_topic";// 请求scope,需要哪些授权private String openid;// 授权成功返回的openid,通过该id做后续操作private String access_token;// 令牌private String expires_in; //失效时间,System.currentTimeMillis() +// Long.parseLong(expires_in) *// 1000。最大有效时间,超过需要重新登陆/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);btn_qq_login = (Button) findViewById(R.id.btn_qq_login);mTencent = Tencent.createInstance(ConfigUtil.qq_client_id,this.getApplicationContext());btn_qq_login.setOnClickListener(this);}@Overridepublic void onClick(View v) {onClickLogin();return;}@Overridepublic boolean handleMessage(Message msg) {switch (msg.arg1) {case 1: {Log.i("test", "授权失败");return false;}case 2: {JSONObject object = (JSONObject) msg.obj;try {access_token = object.getString("access_token").toString();openid = object.getString("openid").toString();expires_in = object.getString("expires_in").toString();Log.i("test", "access_token="+access_token+",openid="+openid+",expires_in="+expires_in);//UserInfo info = new UserInfo(this, mTencent.getQQToken());} catch (JSONException e) {e.printStackTrace();}}}return false;}// 让SDK接口能成功接受回调@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {// TODO Auto-generated method stubmTencent.onActivityResult(requestCode, resultCode, data);}protected void onClickLogin() {if (!mTencent.isSessionValid()) {IUiListener listener = new IUiListener() {@Overridepublic void onError(UiError arg0) {// 授权失败的回调// TODO Auto-generated method stubMessage msg = new Message();msg.arg1 = 1;handler.sendMessage(msg);}@Overridepublic void onComplete(Object arg0) {// 授权成功// TODO Auto-generated method stubMessage msg =new Message();msg.arg1 = 2;msg.what = 1;msg.obj = arg0;handler.sendMessage(msg);}@Overridepublic void onCancel() {// 取消授权// TODO Auto-generated method stubMessage msg = new Message();msg.arg1 = 3;handler.sendMessage(msg);}};mTencent.login(this, SCOPE, listener);} else {mTencent.logout(this);}}// 获取用户资料线程class MyThread extends Thread {/* * (non-Javadoc) * * @see java.lang.Thread#run() */@Overridepublic void run() {}}}
项目还没开工,今天没事做了个第三方登陆平台的Demo,发现了一些问题,不知道广大猿友有没有发现,也希望大神指点下。
首先QQ互联有自己的SDK,利用他封装好的方法可以很方便的实现QQ登陆,实现代码如上,已经获取到了openid,access_token,expires_in,后面获取其他一些东西,这些参数也很容易了。
后来发现用他封装的SDK做的,在流畅方面还是有所不理想。后来想用OAuth2.0协议做,但是很蛋疼的一点是移动应用接入,回调地址只能是网址,还是你在QQ互联上面填写的网址,代码方面基本都实现了,就是请求的时候会提示100010,后来看了下返回码,是回调错误,希望大神给点思路,如何在OAuth2.0协议下接入移动应用(没有自己网站的情况下)
0 0
- 关于TencentQQ互联
- 关于
- 关于
- 关于++,--
- 关于#
- 关于。。。
- 关于
- 关于......
- 关于
- 关于
- 关于****
- 关于
- 关于!
- 关于++
- 关于
- 关于
- 关于$?
- 关于%
- “ error: file not found.” followed by “grub rescue> _ ” 解决
- 通过Hadoop Shell命令进行导入导出操作
- 刀塔传奇战斗系统分析
- c/c++关于随机数字问题
- PHP开发环境部署说明
- 关于TencentQQ互联
- 每日一个知识点7 2014/6/10
- Mac下MySQL卸载方法
- 配置上传文件大小限制
- 实验一 NPC问题——回溯算法、聚类分析
- STM32F103C8T6 短路
- android获取屏幕坐标点
- [C/C++标准库]_[初级]_[字符串string转换大小写]
- Javascript的简单数据类型