移动 App 接入 QQ 登录/分享流程
这里先要提两个平台,腾讯开放平台和 QQ 互联平台:
(一)腾讯开放平台
官网地址:https://open.tencent.com/
介绍:腾讯开放平台是腾讯对开发者公开的一个服务平台,腾讯号称是一个覆盖10亿账户的热门服务平台,这里是接入应用宝,微信,QQ,腾讯 AI 等的一个入口

(二)QQ 互联平台
官网地址:https://connect.qq.com/index.html
这是具体的接入 QQ 的平台,比如 QQ 登录,QQ 分享,QQ AR
开发者注册
0.想要接入腾讯的提供的一些服务,需要先注册腾讯开发者
1.登录 QQ 互联平台:https://connect.qq.com/devuser.html#/
2.点击自己的头像,完善信息,【注意】图片是自己手持身份证的图片
3.提交审核,等待邮箱通知就可以了,一般需要 3 天左右

创建应用
0.等审核通过之后就可以创建应用申请接入了
1.进入QQ互联官网,点击【应用管理】,点击【创建应用】

2.选择网页还是移动 app

3.填写信息

4.获取签名,继续继续填写信息
如果不记得签名,可以将 app 安装手机或者模拟器,然后安装一个 AppManage.apk 工具
AppManage.apk 下载地址:就在 Android 开发信息单选框那行的后面

5.完成,等待审核结果
接入 QQ 登录
这里大家就可以根据官方文档,自己根据情况去配置了
官方文档:http://wiki.connect.qq.com/qq登录

第三方登录、分享(QQ登录、QQ分享)

1.首先加入依赖

    implementation files('libs/SocialSDK_QQ_Simplify.jar')implementation files('libs/umeng_social_api.jar')implementation files('libs/umeng_social_net.jar')implementation files('libs/umeng_social_shareboard.jar')implementation files('libs/umeng_social_tool.jar')

2.导入相应的图片

3.导入jar包

5.清单文件加入权限…

<!--友盟所用的权限  报错 Alt+回车--><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/><uses-permission android:name="android.permission.READ_PHONE_STATE"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.READ_LOGS"tools:ignore="ProtectedPermissions"/><uses-permission android:name="android.permission.CALL_PHONE"/><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/><uses-permission android:name="android.permission.GET_TASKS"/><!--配置友盟上你应用注册的Key值,替换value--><meta-dataandroid:name="UMENG_APPKEY"android:value="5c089159b465f59767000066"></meta-data><!-- 友盟所需配置的Activity信息--><!--注意:在自定义Application中的keyID必须要和清单文件的AuthActivity下的scheme="tencent???"保持一致--><activityandroid:name="com.tencent.tauth.AuthActivity"android:launchMode="singleTask"android:noHistory="true" ><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="tencent100424468" /></intent-filter>
</activity>
<activityandroid:name="com.tencent.connect.common.AssistActivity"android:theme="@android:style/Theme.Translucent.NoTitleBar"android:configChanges="orientation|keyboardHidden|screenSize"/>

MainActivity

public class MainActivity extends AppCompatActivity {private ImageView iv_login;private ImageView iv_share;private TextView tv_result;//A.定义装平台的容器public ArrayList<SnsPlatform> platforms = new ArrayList<SnsPlatform>();private SHARE_MEDIA[] list = {SHARE_MEDIA.QQ, SHARE_MEDIA.QZONE};private UMShareAPI mUMShareAPI;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();//A.三方平台,添加到遍历的集合中initPlatforms();//A.获取UM的对象mUMShareAPI = UMShareAPI.get(MainActivity.this);//A.获取是否授权final boolean isauth = UMShareAPI.get(this).isAuthorize(this, platforms.get(0).mPlatform);//A.点击QQ的头像,进行授权iv_login.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {if (isauth){Toast.makeText(MainActivity.this, "授权成功", Toast.LENGTH_SHORT).show();mUMShareAPI.deleteOauth(MainActivity.this, platforms.get(0).mPlatform,authListener);}else{mUMShareAPI.doOauthVerify(MainActivity.this, platforms.get(0).mPlatform,authListener);}mUMShareAPI.getPlatformInfo(MainActivity.this, platforms.get(0).mPlatform,authListener);}});//B.分享的逻辑代码ImageView iv_share = (ImageView) findViewById(R.id.iv_share);final UMImage image = new UMImage(MainActivity.this, "http://b.hiphotos.baidu.com/zhidao/pic/item/63d9f2d3572c11df28e42e30602762d0f703c2e8.jpg");//网络图片final UMImage imagelocal = new UMImage(this, R.mipmap.ic_launcher);imagelocal.setThumb(new UMImage(this, R.mipmap.ic_launcher));imagelocal.setTitle("AAAA");iv_share.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {new ShareAction(MainActivity.this).withMedia(image).setPlatform(platforms.get(0).mPlatform).setCallback(shareListener).share();new ShareAction(MainActivity.this).setPlatform(SHARE_MEDIA.QQ).withText("hello").setCallback(shareListener).share();}});}private void initPlatforms() {//A.集合清空platforms.clear();//A.通过for循环,把数组数据添加到集合中for (SHARE_MEDIA e : list) {if (!e.toString().equals(SHARE_MEDIA.GENERIC.toString())) {platforms.add(e.toSnsPlatform());}}}//A.@Overrideprotected void onActivityResult ( int requestCode, int resultCode, Intent data){super.onActivityResult(requestCode, resultCode, data);UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);}//A.UMAuthListener authListener = new UMAuthListener() {@Overridepublic void onStart(SHARE_MEDIA platform) {//授权开始的回调,可以用来处理等待框,或相关的文字提示}@Override//授权成功时回调public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {//获取用户授权后的信息Set<String> strings = data.keySet();data.get("profile_image_url");String temp="";for(String key: strings ){temp =temp +key +" :" +data.get(key) +"\n";}tv_result.setText(temp);}@Overridepublic void onError(SHARE_MEDIA platform, int action, Throwable t) {Toast.makeText(MainActivity.this, "失败:" + t.getMessage(), Toast.LENGTH_LONG).show();}@Overridepublic void onCancel(SHARE_MEDIA platform, int action) {Toast.makeText(MainActivity.this, "取消了", Toast.LENGTH_LONG).show();}};private void initView() {iv_login = (ImageView) findViewById(R.id.iv_login);iv_share = (ImageView) findViewById(R.id.iv_share);tv_result = (TextView) findViewById(R.id.tv_result);}//B.分享的逻辑代码private UMShareListener shareListener = new UMShareListener() {@Overridepublic void onStart(SHARE_MEDIA platform) {}@Overridepublic void onResult(SHARE_MEDIA platform) {Toast.makeText(MainActivity.this, "成功了", Toast.LENGTH_LONG).show();}@Overridepublic void onError(SHARE_MEDIA platform, Throwable t) {Toast.makeText(MainActivity.this, "失败" + t.getMessage(), Toast.LENGTH_LONG).show();}@Overridepublic void onCancel(SHARE_MEDIA platform) {Toast.makeText(MainActivity.this, "取消了", Toast.LENGTH_LONG).show();}};
}

MyApplication

public class MyApplication extends Application {@Overridepublic void onCreate() {super.onCreate();//UMeng初始化UMShareAPI.get(this);PlatformConfig.setQQZone("1106036236","mjFCi0oxXZKZEWJs");UMConfigure.init(this,"5c089159b465f59767000066","小米",UMConfigure.DEVICE_TYPE_PHONE,"");}}

QQ 登录/分享接入流程相关推荐

  1. 移动 App 接入 QQ 登录/分享流程

    移动 App 接入 QQ 登录/分享流程 这里先要提两个平台,腾讯开放平台和 QQ 互联平台: (一)腾讯开放平台 官网地址:https://open.tencent.com/ 介绍:腾讯开放平台是腾 ...

  2. 【APICloud系列|38】 微信登录分享、QQ登录分享实现方法

    对微信登录分享.QQ登录分享进行一个流程性的讲解.在微信分享经常是分享不成功或者图片不显示,主要问题是图片过大或者是没有本地化. 1.流程:使用auth进行授权--->getToken获取用户信 ...

  3. QQ登录接口申请流程(全面)

    QQ登录第三方接口申请流程 前言介绍 相关流程 最后结语 前言介绍 Web项目的用户登录,怎么申请QQ登录接口?流程如下! 相关流程 进入QQ互联官网 登录QQ,完善开发者信息 我是分割线 我是分割线 ...

  4. ios的qq分享接入流程

    最近搞了个ios端的qq分享接入,总结一下接入的流程和遇到的一些值得注意的问题. 1.进入QQ后台应用管理创建应用并申请,然后下载SDK. 2.ios的sdkDemo是可以在xcode上面跑的,但是需 ...

  5. 视频直播平台源码关于Facebook登录、分享接入流程

    现在,视频直播平台移民三方账号登录.分享功能是最基本的功能设置,而且随着互联网技术的发展,很多视频直播平台源码需要对Facebook.Twitter.Line等国外APP进行接入,从而实现用户流量的增 ...

  6. 安卓应用使用QQ登录的申请流程

    转自:http://www.apkbus.com/android-82799-1-1.html "QQ互联"是腾讯为第三方网站.媒体.终端提供的开放平台.QQ互联拥有8个组件,提供 ...

  7. 第三方登录(QQ登录)开发流程详解

    一.准备工作 接入QQ登录前,网站需首先进行申请,获得对应的appid与appkey,以保证后续流程中可正确对网站与用户进行验证与授权. 申请appid和appkey的用途 appid :应用的唯一标 ...

  8. 友盟第三方QQ登录分享

    1.布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android ...

  9. Android QQ登录,分享,分享图片

    近年来三方导流,方便用户使用App,以及方便App数据分享越来越多的App支持了三方登录以及三方分享网页和图片.在此,整理了一系列三方库的集成方法以及集成中遇到的问题 . 一:引用 1:Maven引用 ...

最新文章

  1. HTML5 服务器发送事件(Server-Sent Events)介绍
  2. python官网下载步骤图解-下载及安装Python详细步骤
  3. 这款网络排查工具,堪称神器!
  4. HDOJ2072解题报告【字典树】
  5. mysql server 5.0安装教程_MySQL Server 5.0安装教程
  6. vscode 写vue 没有js提示_如何用VSCode实现一个vue.js项目?
  7. autocad.netQQ群:193522571属性块中属性文字宽度比例自动调整到格子宽度内,比例因子小于标准比例因子的自动设置为标准比例因子...
  8. Linux下实现流水灯等功能的LED驱动代码及测试实例
  9. BZOJ 1632: [Usaco2007 Feb]Lilypad Pond
  10. Unity 3D ScrollView控件(滚动视图)
  11. Sketch for mac v78 矢量绘图软件
  12. 视频码率与视频清晰度、视频大小的关系。视频码率计算公式
  13. MySQL时区问题(与北京时间相差13小时)-- mybatisplus使用LocalDateTime.now()获取系统当前时间问题
  14. java der 解码_JAVA解析各种编码密钥对(DER、PEM、openssh公钥)
  15. 【C++】实现一个日期计算器
  16. MIT算法导论03-分治法
  17. 右键删除或新增 Open Folder as Intellij IDEA Project
  18. 【Ⅰ绪论】2.数据结构的基本概念
  19. Leetcode 1436旅行终点站 拓扑排序 并查集与队列
  20. c语言报错spawning 插1,Visual C++中error spawning cl.exe错误的两种解决方法.

热门文章

  1. 可为空的对象必须具有一个值。异常排查
  2. C# 不包含可为 COM 互操作注册的任何类
  3. 甲醛传感器的检测种类
  4. Mitsuba2 渲染 物体黑边问题
  5. win定时关机_今天才知道电脑还可以这样设置定时关机,太方便了。电脑技巧
  6. WordPress付费下载,付费阅读类主题
  7. JSP+SQL网上选课系统(源代码+论文+答辩PPT)
  8. Go微服务架构实战-中篇 1. k8s架构介绍
  9. python修饰器classmate_python3大器----装饰器,迭代器,生成器
  10. c语言图像库 俄罗斯方块,C++俄罗斯方块游戏 无需图形库的俄罗斯方块