本篇文档主要讲解如何使用QQ进行分享和授权。创建应用1.登录QQ互联,控制台并通过企业认证。2.选择应用管理>移动应用>创建应用3.单击创建移动应用4.配置应用信息以下为创建过程示例,图中信息仅为示例,创建时请按照真实信息填写,否则无法正常使用。
图片

图片
资料填写
图片

图片
完成以上内容填写后,QQ平台应用创建已经完成,可正常使用。权限申请
图片
getUnionId的API权限可通过操作栏-申请
图片
应用关联(可选)腾讯开放平台的移动应用关联到QQ互联,并获取QQ相关的开放能力。安卓的需要查看包名和签名,iOS的需要将自己项目的Bundle id进行报备,以及填写Univesal link进行审核
图片

图片
集成使用配置信息获取客户端在使用QQ平台之前,需要先获取QQ为应用分发的APP ID和APP Key。
图片
AndroidSDK集成在集成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";

}


中关村科金
136 声望13 粉丝

北京中关村科金技术有限公司(简称“中关村科金”)是国内领先的对话式AI技术解决方案提供商,成立于2014年,注册资本14亿元,总部位于北京,在上海、重庆、深圳、杭州、成都等地设有分支机构,公司规模近千人,其...