当前位置: 首页 > news >正文

查看网站cms/搜索引擎排名机制

查看网站cms,搜索引擎排名机制,搭建一个服务器买域名做网站,房产网二手房【QQ登录】Android_SDK使用说明 QQ登录Android SDK以Jar包形式提供,封装了QQ登录的登录授权以及大部分OpenAPI,应用只需要修改少量代码,不需要理解验证授权流程,即可快速实现QQ登录功能。 Android平台上的应用,请在申…

【QQ登录】Android_SDK使用说明

QQ登录Android SDK以Jar包形式提供,封装了QQ登录的登录授权以及大部分OpenAPI,应用只需要修改少量代码,不需要理解验证授权流程,即可快速实现QQ登录功能。

Android平台上的应用,请在申请appid,appkey后,使用QQ互联提供的Android SDK。

注意:
1. QQ登录Android SDK支持的Android版本:2.1及以上版本。
2. 支持的第三方浏览器:Android系统自带浏览器,Firefox,Opera Mobile。
3. 支持web view与浏览器两种方式,即支持跳转到手机浏览器上进行QQ登录与验证流程,开发者可在SDK包中选择浏览器模式即可,但浏览器方式用户跳跃较大,不建议使用。
4. 仅适用于移动应用,即基于【QQ登录】使用Implicit_Grant方式获取Access_Token接入的应用。 

目录

[隐藏]
  • 1. Android SDK 下载
  • 2. 创建工程及引用SDK源码文件
  • 3. 修改必要的代码
    • 3.1 使用SDK提供的按钮样式
    • 3.2 获取access token
    • 3.3 获取OpenID
  • 4. 调用OpenAPI
  • 附录:Android SDK主要类说明

1. Android SDK 下载

请到【QQ登录】SDK下载页面下载QQ登录Android SDK。 

2. 创建工程及引用SDK源码文件

以下以eclipse为开发的IDE进行范例说明:
1. 创建一个工程,并把 tencent_openapi.jar 放到lib中,如下图所示:
connect_android_1.png 
2. 将tencent_openapi.jar加入编译路径中。
具体的操作步骤为:选中tencent_openapi.jar ,右键菜单中选择Build Path, 选择Add to Build Path,如下图所示:
connect_android_2.png



看到类似以下的样子,说明已经成功将jar包加入build path :
connect_android_3.png


3. 修改必要的代码

3.1 使用SDK提供的按钮样式

SDK提供了大中小3种登录按钮,开发者可以在代码中设置按钮样式。
示例代码如下(在SDK包中的位置:\TAuthDemo\src\com\tencent\tauthdemo\TAuthDemoActivity.java )

 ImageView loginBtn = (ImageView) findViewById(R.id.login);//大按钮loginBtn.setImageDrawable(TencentOpenRes.getBigLoginBtn(getAssets()));	//中按钮 //loginBtn.setImageDrawable(TencentOpenRes.getLoginBtn(getAssets()));//小按钮//loginBtn.setImageDrawable(TencentOpenRes.getSmallLoginBtn(getAssets()));



3.2 获取access token

(1)获取Access token 需要访问网络,所以需要修改AndroidManifest.xml,加入以下代码:

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<activity android:name="com.tencent.tauth.TAuthView" 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" /> <!—这里的scheme必须与下面设置的CALLBACK一致,且全部小写。默认值是 auth -> <data android:scheme="auth"/>  		
     </intent-filter>  
</activity>


(2)处理登录页面的打开方式在 com.tencent.tauth.TAuthView.class 这个类中。需要以 intent.putExtra 的方式传入如下参数: 

参数 是否必须 含义
client_id 必须 申请QQ登录成功后,分配给应用的appid。
scope 可选 请求用户授权时向用户显示的可进行授权的列表。

可填写的值是【QQ登录】API文档中列出的接口,以及一些动作型的授权(目前仅有:do_like);
如果要填写多个接口名称,请用逗号隔开。
例如:scope=get_user_info,list_album,upload_pic,do_like
不传则默认请求对接口get_user_info进行授权。
建议控制授权项的数量,只传入必要的接口名称,因为授权项越多,用户越可能拒绝进行任何授权。

target 必须 打开登录页面的方式:“_slef”以webview方式打开; "_blank"以内置安装的浏览器方式打开。
callback 可选 成功授权后的回调地址。

必须与注册时填写的回调地址一致,用来进行第三方应用的身份验证。
不能包含特殊字符“#”;
不能是浏览器能识别的协议(如:http://auth.qq.com);
不区分大小写,在AndroidManifest.xml设置的scheme必须是小写;
不传则默认为http://auth.qq.com;
如果设置了,请注意与AndroidManifest.xml里的值一致



下面是打开登录授权页面的示例代码(在SDK包中的位置:\TAuthDemo\src\com\tencent\tauthdemo\TAuthDemoActivity.java ) 

   private void auth(String clientId, String target) {// 使用WebView打开Intent intent = new Intent(TAuthDemoActivity.this, com.tencent.tauth.TAuthView.class);intent.putExtra(TAuthView.CLIENT_ID, clientId);intent.putExtra(TAuthView.SCOPE, scope);	intent.putExtra(TAuthView.TARGET, target);intent.putExtra(TAuthView.CALLBACK, CALLBACK); startActivity(intent);		}



(3)成功授权后会以广播的形式把相应的access token,expires_in 的值广播,需要写一个接收器来接收相关的数值。
示例代码如下(在SDK包中的位置:\TAuthDemo\src\com\tencent\tauthdemo\TAuthDemoActivity.java ) 

   public class AuthReceiver extends BroadcastReceiver {private static final String TAG="AuthReceiver";
      @Overridepublic void onReceive(Context context, Intent intent){Bundle exts = intent.getExtras();String raw =  exts.getString("raw");String access_token =  exts.getString("access_token");String expires_in =  exts.getString("expires_in");Log.i(TAG, String.format("raw: %s, access_token:%s, expires_in:%s", raw, access_token, expires_in));
         if (access_token != null) {//获取到access tokenmAccessToken = access_token;((TextView)findViewById(R.id.access_token)).setText(access_token);TDebug.msg("正在获取OpenID...", getApplicationContext());//用access token 来获取open idmTencentOpenAPI.openid(access_token, new OpenIDListener());}}}

特别提示: 
获取到的access token具有3个月有效期,网站需实现防过期策略,并在过期后提示用户再次授权。
第三方网站可存储access token信息,以便后续调用OpenAPI访问和修改用户信息时使用。

3.3 获取OpenID

获取到access token后,就可以依据access token 来获取相应的openid:

//用access token 来获取openid
TencentOpenAPI.openid(access_token, new Callback());



所有的开发接口的调用都通过 TencentOpenAPI类来代理实现。这个的类里的接口的调用是一个非阻塞模式进行的,所以要注册一个回调函数,当完成后进行相应的处理。
示例代码如下(在SDK包中的位置:\TAuthDemo\src\com\tencent\tauthdemo\TAuthDemoActivity.java )

TencentOpenAPI.openid(access_token, new Callback() {

  @Overridepublic void onSuccess(final Object obj) {runOnUiThread(new Runnable() {@Overridepublic void run() {setOpenIdText(((OpenId)obj).getOpenId());}});
   }


   @Overridepublic void onFail(int ret, final String msg){runOnUiThread(new Runnable() {@Overridepublic void run() {TDebug.msg(msg, getApplicationContext());}});}

});


4. 调用OpenAPI

成功获取到access token和openid后,就可以调用QQ登录的OpenAPI了。
建议网站在用户登录后,即调用getUserInfo接口获得该用户的头像、昵称并显示在网站上,使用户体验统一。

调用OpenAPI的过程与获取OpenID类似,要注册一个回调函数,当完成后进行相应的处理。
下面以调用get_user_info接口为例
(在SDK包中的位置:\TAuthDemo\src\com\tencent\tauthdemo\clickListener\GetUserInfoClickListener.java ) 

TencentOpenAPI.userInfo(mActivity.mAccessToken, mActivity.mAppid, mActivity.mOpenId, new Callback() {

  @Overridepublic void onSuccess(final Object obj) {mActivity.runOnUiThread(new Runnable() {@Overridepublic void run() {mActivity.dismissDialog(TAuthDemoActivity.PROGRESS);mActivity.showMessage("用户信息", obj.toString());}});}
  @Overridepublic void onFail(int ret, final String msg) {mActivity.runOnUiThread(new Runnable() {				@Overridepublic void run() {mActivity.dismissDialog(TAuthDemoActivity.PROGRESS);TDebug.msg(msg, mActivity);}});}

});



附录:Android SDK主要类说明

1. TAuthView.java:这个类是处理用户授权登录的,如果成功返回access token, 会以广播的形式广播出去。 
2. TencentOpenHost.java:这个类来定义接口用到的URL地址。 
3. TencentOpenAPI.java:这个类封装了QQ登录的OpenAPI,每一个接口都是以非阻塞的方式进行调用获取。 


http://wiki.opensns.qq.com/wiki/%E3%80%90QQ%E7%99%BB%E5%BD%95%E3%80%91Android_SDK%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E#1._Android_SDK_.E4.B8.8B.E8.BD.BD

http://www.jmfq.cn/news/4735747.html

相关文章:

  • 租号网站开发/网站批量收录
  • 鲜花网站建设论文/路由优化大师
  • 广州网站设计开发/日本站外推广网站
  • asp动态网站开发教程/seo网络营销案例分析
  • 金融业反洗钱培训网站/百度app下载链接
  • 天津响应式网站设计/阐述网络推广的主要方法
  • 阿里云网站建设方案/西安seo排名外包
  • 财务网站模板/百度关键词怎么排名
  • 遵义做网站/如何做网络宣传推广
  • 濮阳的网站建设/日本比分预测
  • 公司网站制作重庆/关键词百度指数查询
  • 上海市公安网站备案查询/b2b b2c c2c o2o区别
  • 谷歌seo外贸推广/seo优化检测
  • 做哪个网站的推广好/最近有新病毒出现吗
  • 网站开发流程包括/seo扣费系统源码
  • 做电商网站都需要学什么软件/谷歌浏览器官网入口
  • 网站首页图片怎么更换/关键词点击价格查询
  • 路由器电脑可以做网站主机/线上招生引流推广方法
  • 招聘网站排行榜/站长工具外链查询
  • 城阳网站建设培训/优化器
  • 墙蛙网站谁家做的/搜狗搜索推广
  • server 2008 架设网站/免费b站推广入口
  • 做的网站能撤掉吗/seo百家论坛
  • 深圳网站推广哪家好/丽水百度seo
  • 宁波市城乡建设委员会网站/微信seo什么意思
  • 做类似返利网的网站/南宁网络优化seo费用
  • 猪八戒网做网站如何/泾县网站seo优化排名
  • 建网站代理/帮我搜一下长沙做网络销售
  • 怎么做自己的网站后台教程/产品推广运营方案
  • 政府网站集约化建设汇报/西安网