写点什么

ShareSDK 第三方平台使用指南——QQ

  • 2024-07-29
    上海
  • 本文字数:2699 字

    阅读完需:约 9 分钟

本篇文档主要讲解如何使用 QQ 进行分享和授权。

创建应用

1.登录QQ互联,控制台并通过企业认证。

2.选择应用管理>移动应用>创建应用

3.单击创建移动应用

4.配置应用信息

以下为创建过程示例图中信息仅为示例,创建时请按照真实信息填写,否则无法正常使用




资料填写



完成以上内容填写后,QQ 平台应用创建已经完成,可正常使用。

权限申请



getUnionId 的 API 权限可通过操作栏-申请



应用关联(可选)

腾讯开放平台的移动应用关联到QQ互联,并获取 QQ 相关的开放能力。

安卓的需要查看包名和签名,iOS 的需要将自己项目的 Bundle id 进行报备,以及填写 Univesal link 进行审核




集成使用

配置信息获取

客户端在使用 QQ 平台之前,需要先获取 QQ 为应用分发的 APP ID 和 APP Key。



Android

SDK 集成

在集成 QQ 相关能力之前,请先按照ShareSDK集成指南完成 ShareSDK 的集成。

gradle 配置微信相关信息

在对应 gradle 文件中,添加如下 QQ 模块代码,其中 appId 的值对应 QQ 平台中的 App ID,appKey 对应 QQ 平台中的 App Key。

MobSDK {    appKey "xxxxxx"    appSecret "xxxxxx"    ShareSDK {        devInfo {            QQ{                appId "xxxxxx"                appKey "xxxxxx"                enable true            }            .......        }    }}
复制代码

分享示例

以下代码示例分享网络链接至 QQ 好友

Platform platform = ShareSDK.getPlatform(QQ.NAME);Platform.ShareParams shareParams = new  Platform.ShareParams();shareParams.setText("QQ分享内容");shareParams.setTitle("QQ分享标题");shareParams.setImageUrl("https://download.sdk.mob.com/web/images/2019/07/30/14/1564468183056/750_750_65.12.png");shareParams.setShareType(Platform.SHARE_WEBPAGE);shareParams.setUrl("https://www.mob.com/");//设置分享事件回调(注:回调放在不能保证在主线程调用,不可以在里面直接处理UI操作)platform.setPlatformActionListener(new PlatformActionListener() {    @Override    public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {        //分享成功    }    @Override    public void onError(Platform platform, int i, Throwable throwable) {        //分享失败    }    @Override    public void onCancel(Platform platform, int i) {        //分享取消    }});platform.share(shareParams);
复制代码

效果图



授权示例

Platform qq = ShareSDK.getPlatform(QQ.NAME);qq.setPlatformActionListener(new PlatformActionListener() {    @Override    public void onComplete(Platform platform, int i, final HashMap<String, Object> hashMap) {        Log.d("ShareSDK", platform.getDb().exportData());    }    @Override    public void onError(Platform platform, int i, Throwable throwable) {    }    @Override    public void onCancel(Platform platform, int i) {    }});qq.SSOSetting(false);qq.showUser(null);
复制代码

返回信息示例

在 ShareSDK 成功回调中调用 platform.getDb().exportData(),将返回以下信息。

{    "unionid": "UID_xxxxxxAFF0CC0E874D4379426F8FD90F",    "gender": "0",    "pay_token": "792ExxxxxxD0271D28CDF474323548B4",    "icon": "http:\/\/thirdqq.qlogo.cn\/ek_qqapp\/AQScMjx9peEMBflnOzdBEGricOB5WTZYaazmyzRMUv0DpBnPZicrlq385e9ELHtR0toMqKU60r\/100",    "secret": "",    "userID": "E3E7xxxxxx03632CC7E38F165C6D75F3",    "expiresTime": 1720668163859,    "token": "73DFxxxxxFADA8C4C3D3A9325046F16",    "expiresIn": 5184000,    "pfkey": "1935xxxxxx72f9771787a14015f43df8",    "pf": "desktop_m_qq-10000144-android-2002-",    "secretType": "0",    "nickname": "以xxx後",    "iconQzone": "http:\/\/thirdqq.qlogo.cn\/ek_qqapp\/AQScMjx9peEMBflnOzdBEGricOB5WTZYaazmyzRMUv0DpBnPZicrlq385e9ELHtR0toMqKU60r\/100"}
复制代码

iOS

在集成 QQ 相关能力之前,请先按照ShareSDK集成指南完成 ShareSDK 的集成。

SDK 集成

添加白名单

在项目的 info.plist 中添加 Queried URL Schemes,类型为 Array,然后添加一个需要支持的项目,类型为字符串类型,添加:mqqopensdknopasteboardios16,mqqopensdknopasteboard,mqq,mqzone,mggopensdklaunchminiapp,mqqopensdkapiV2,tim,mqqapi,mgq



配置 scheme

打开项目的 Info 选项,然后选择 URL Types,添加对应平台的 URL Scheme 配置,如下图:



配置 universalink

选择 Target,点击 Capability,选择 Associated Domains,并双击添加,然后点击“+”号,添加 Universal link,添加形式为:applinks:XXX,XXX 为您 Universal link 的域名,如下图



初始化 SDK

在使用 QQ 能力之前,需要先对其初始化,其中 setupQQWithAppId 的值对应 QQ 平台的 APP ID,appkey 对应 QQ 平台中的 APP Key,universalLink 对应的是 QQ 平台的 Universal link。

[ShareSDK registPlatforms:^(SSDKRegister *platformsRegister) {[platformsRegister setupQQWithAppId:@"xxxxxx"appkey:@"xxxxxx"enableUniversalLink:NO universalLink:@"xxxxxxx"];}];
复制代码

分享示例

以下代码示例分享网络链接至 QQ 好友

#import <ShareSDK/ShareSDK.h>NSMutableDictionary *params = [NSMutableDictionary dictionary];
[params SSDKSetupShareParamsByText:@"test" images:[UIImage imageNamed:@"shareImg.png"] url:[NSURL URLWithString:@"http://www.mob.com/"] title:@"title" type:SSDKContentTypeAuto];[ShareSDK share:SSDKPlatformTypeQQ parameters:params onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) { }];
复制代码

效果图



授权示例

#import <ShareSDK/ShareSDK.h>[ShareSDK authorize:SSDKPlatformTypeQQ settings:nil onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error) {}];
复制代码

返回信息示例

{    "access_token" = D2F2xxxxxx50FB9AF240F098B4213E16;    "expires_in" = "5183999.98635006";    msg = "";    openid = 6950xxxxxxADB10F015EF1A917F42B0C;    "pay_token" = 7661xxxxxx290B27570C941871C0BCED;    pf = "openmobile_ios";    "pf_key" = d2dbxxxxxx6cc2fde68a3a4c3f26a69a;    ret = 0;    unionid = "UID_xxxxxx9F91D27B544B5DBFD34C3A336E";}
复制代码


发布于: 刚刚阅读数: 4
用户头像

还未添加个人签名 2019-05-08 加入

还未添加个人简介

评论

发布
暂无评论
ShareSDK第三方平台使用指南——QQ_开发者_MobTech袤博科技_InfoQ写作社区