Android之第三方平台实现QQ登录和QQ分享

目前大多数APP都包含了第三方平台的登录,特别是QQ和微信,这篇博客主要讲的是如何实现QQ第三方平台实现QQ登录和分享功能,功能包含:

  • 登录授权登录获取用户信息(昵称,头像,地址等)
  • QQ分享给好友
  • QQ分享到空间

先看看效果图:

                          

要实现以上功能,首先得去腾讯开放平台 注册成为开发者,然后创建应用,得到 APPID,如下图:

名称就是APP名称,可上传Logo图片,授权登录时会显示授权给那个APP,效果如图:

      

创建成功后,取得APP ID即可,完成以上功能了。

添加这两个jar包

1 public static Tencent mTencent; 2 public static String mAppid="申请的APPID"; 3 4 if (mTencent == null) { 5 mTencent = Tencent.createInstance(mAppid, this); 6 } 7 8 /** 9 * 继承的到BaseUiListener得到doComplete()的方法信息 10 */ 11 IUiListener loginListener = new BaseUiListener() { 12 @Override 13 protected void doComplete(JSONObject values) {//得到用户的ID 和签名等信息 用来得到用户信息 14 Log.i("lkei",values.toString()); 15 initOpenidAndToken(values); 16 updateUserInfo(); 17 } 18 }; 19 20 //qq分享 21 private void onClickShare() { 22 final Bundle params = new Bundle(); 23 params.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, 24 QQShare.SHARE_TO_QQ_TYPE_DEFAULT); 25 params.putString(QQShare.SHARE_TO_QQ_TITLE, "要分享的标题"); 26 params.putString(QQShare.SHARE_TO_QQ_SUMMARY, "要分享的摘要"); 27 params.putString(QQShare.SHARE_TO_QQ_TARGET_URL, 28 "http://blog.csdn.net/DickyQie/article/list/1"); 29 params.putString(QQShare.SHARE_TO_QQ_IMAGE_URL, 30 "http://imgcache.qq.com/qzone/space_item/pre/0/66768.gif"); 31 params.putString(QQShare.SHARE_TO_QQ_APP_NAME, "切切歆语"); 32 params.putString(QQShare.SHARE_TO_QQ_EXT_INT, "其他附加功能"); 33 mTencent.shareToQQ(MainActivity.this, params, new BaseUiListener1()); 34 } 35 36 private void shareToQQzone() { 37 try { 38 final Bundle params = new Bundle(); 39 params.putInt(QzoneShare.SHARE_TO_QZONE_KEY_TYPE, 40 QzoneShare.SHARE_TO_QZONE_TYPE_IMAGE_TEXT); 41 params.putString(QzoneShare.SHARE_TO_QQ_TITLE, "切切歆语"); 42 params.putString(QzoneShare.SHARE_TO_QQ_SUMMARY, "sss"); 43 params.putString(QzoneShare.SHARE_TO_QQ_TARGET_URL, 44 "http://blog.csdn.net/DickyQie/article/list/1"); 45 ArrayList<String> imageUrls = new ArrayList<String>(); 46 imageUrls.add("http://media-cdn.tripadvisor.com/media/photo-s/01/3e/05/40/the-sandbar-that-links.jpg"); 47 params.putStringArrayList(QzoneShare.SHARE_TO_QQ_IMAGE_URL, imageUrls); 48 params.putInt(QzoneShare.SHARE_TO_QQ_EXT_INT, 49 QQShare.SHARE_TO_QQ_FLAG_QZONE_AUTO_OPEN); 50 Tencent mTencent = Tencent.createInstance("申请的APPID", 51 MainActivity.this); 52 mTencent.shareToQzone(MainActivity.this, params, 53 new BaseUiListener1()); 54 } catch (Exception e) { 55 } 56 }

在AndroidManifest.xml中

application 下:

1 <activity 2 android:name="com.tencent.open.yyb.AppbarActivity" 3 android:configChanges="orientation|keyboardHidden" 4 android:screenOrientation="portrait" 5 android:theme="@android:style/Theme.Translucent.NoTitleBar" /> 6 <activity android:name="com.tencent.connect.avatar.ImageActivity" /> 7 <activity 8 android:name="com.tencent.connect.common.AssistActivity" 9 android:configChanges="orientation|keyboardHidden" 10 android:screenOrientation="behind" 11 android:theme="@android:style/Theme.Translucent.NoTitleBar" /> 12 <activity 13 android:name="com.tencent.tauth.AuthActivity" 14 android:launchMode="singleTask" 15 android:noHistory="true" > 16 <intent-filter> 17 <action android:name="android.intent.action.VIEW" /> 18 <category android:name="android.intent.category.DEFAULT" /> 19 <category android:name="android.intent.category.BROWSABLE" /> 20 <data android:scheme="tencent1106062414" /> 21 <!--应用的AppId要相同--> 22 </intent-filter> 23 </activity>

添加权限

1 <uses-permission android:name="android.permission.INTERNET" /> 2 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 3 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 4 <!-- SDK2.1新增获取用户位置信息 --> 5 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 6 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 7 <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> 8 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 9 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 10 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 11 <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 12 <uses-permission android:name="android.permission.GET_TASKS"/>

源码有点多就不一一贴出来了,直接下载源码即可,其他功能可以参考腾讯开放平台的文档。

源码点击下载

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

QQ分享 QQ空间分享 API链接:

通过qq空间、qq聊天、新浪微博和微信二维码分享平台提供的接口,实现把网页中对应的图片、标题、描述的信息参数用javascript获取后传进接口中,实现一键分享。使用到的接口(测试时需要登录,网址和图片必须是公网的,不能是localhost):1.分享到QQ空间接口:https://sns.qzone.qq.com/cg

uni-app入门教程(7)第三方登录和分享

前言本文主要介绍了APP开发的两大基本功能,即第三方登录登录和分享:包括登录通用配置,微信小程序和APP的第三方登录方式,和分享到聊天和朋友圈,使用uniapp实现有不同的接口和实现方式。一、通用配置因为小程序和APP登录接口不同,需要在前端进行跨端兼容处理,同时微信等平台的小程序一般只支持所属宿主程序的第三方登录,而无法包括其他的

1小时搭建微信小程序后端

CoNami小程序Demo端到端开发指南1\.注册登录微信公众平台登录https://mp.weixin.qq.com,里面有详细的指引,这里就不赘述了。这里注册最后得到的比较重要的东西包括两个(https://www.oschina.net/action/GoToLink