应用宝流量联盟接入指引
1、注册审核答疑
1.1、怎样成为应用宝流量联盟成员?
1.1.1、合作方接入应用宝流量联盟的前提是需要先成为腾讯开放平台的开发者,如果合作方尚未成为腾讯开放平台的开发者,则需进入http://open.qq.com/页面,点击注册按钮,按照页面内容提示完成注册流程,成为腾讯开放平台的开发者。
1.1.2、如果合作方已是腾讯开放平台的开发者,但接入应用宝流量联盟的相关应用并未在腾讯开放平台上架,则需进入http://op.open.qq.com/appregv2/页面,上架新应用。
1.1.3、如果合作方已是腾讯开放平台的开发者,同时接入应用宝流量联盟的相关应用已在腾讯开放平台上架,则需进http://union.open.qq.com/pc/index/index.html页面,点击登录按钮,使用腾讯开放平台的开发者账号登录流量联盟管理中心。在“选择接入应用”页面选择相关应用
按页面提示完成基础资料填写
选择一种与自身应用契合的SDK接入
接受应用宝联盟协议
提交资料等待审核通过即可成为应用宝联盟成员
1.2、接入积分墙SDK需要填写哪些信息?
1.2.1、选择积分墙样式。
积分墙样式总共有两种,分别是基础积分墙和会员服务专区。基础积分墙是基于合作方自有的货币系统建立起来的积分墙,比如开心消消乐接入了基础积分墙,用户在基础积分墙里面下载应用可以兑换开心消消乐里面的风车币。会员服务专区是在合作方内部自建货币系统,比如乐视视频接入了会员服务专区,用户在会员服务专区里面下载应用获取积分,积分累计到一定数目可以兑换一个月的乐视视频会员。合作方根据自己的App形态选择适合自己的积分墙样式。
1.2.2、填写积分墙标题。
标题建议建议不要超过8个中文字符,例如开心消消乐的积分墙标题是免费赚风车币。
1.2.3、选择积分发放方式及填写积分发放地址。
如果合作方选择的是基础积分墙,积分发放方式既可以选择前端发放也可以选择后台发放,如果合作方选择的是会员服务专区,积分发放方式只能够选择后台发放,选择后台发放需填写积分发放地址,两种发放方式均保证数据安全。
1.2.4、 填写虚拟货币单位。
应用内原有的货币单位,例如开心消消乐是风车币,不能超过5个中文字符
1.2.5、填写虚拟货币汇率。
例如下载1个应用接入方获得1元,1元可兑换100个货币,那么汇率为100,只能够填写正数。
1.2.6、填写用户分成比例。
例如1个应用对用户显示100货币,配置后用户只能看到80货币,只能填写0到100的正数。
1.3、接入积分墙SDK需要填写哪些信息?
接入审核周期为1个工作日(节假日顺延),会通过站内信及邮件通知到合作方。
1.4、已接入流量联盟的应用是否可以修改接入应用名称?
可以修改,需进入xxx页面,点击申请修改。
1.5、已接入流量联盟的应用是否可以修改接入应用包名?
不可以。应用包名是判断该应用的唯一值,应用包名更换之后视为一个新的应用,则需要重新接入流量联盟提交申请资料并进行SDK接入。
1.6、一个应用是否可以接入多个不同的SDK?
可以。在“应用管理”模块,点击“应用接入”按钮,跳转到应用接入页面,选择相关的应用及SDK,重新申请即可。
1.7、已接入流量联盟的应用是否可以更换已接入的SDK类型?
可以。在“应用管理”模块,点击“应用接入”按钮,跳转到应用接入页面,选择相关的应用及SDK,重新申请即可
1.8、应用审核通过之后相关的SDK去哪里下载?
流量联盟官网—管理中心页面—“应用列表”—下载SDK
1.9、应用的AppKey和AppSecret两个参数在哪里查看?
流量联盟官网—管理中心页面—“应用列表”—查看参数信息
1.10、不同应用是否可以接入同一个SDK?
不可以。流量联盟给每一个接入应用分配的SDK都是定制化的,无法复用到其他应用中去。如果强行复用,会导致SDK接入失败。
1.11、如何更新SDK?
流量联盟管理中心显示的SDK永远为最新版本,前往流量联盟管理中心下载对应应用的SDK,按照接入指引操作即可更新,下载路径为:流量联盟—管理中心页面—“应用列表”—下载新版SDK,
2、应用墙SDK接入指引
2.1、应用墙接入准备
2.1.1步骤一 将sdk的jar包导入您的工程中
新建libs文件夹,将jar包添加入。
2.1.2步骤二 添加assets内容
将assets.zip解压,将里面全部文件导入apk工程的assets中,确保其中文件在apk打包后的assets根目录下存在。
2.1.3 步骤三 将so导入您的工程中。
•在步骤一建好的libs下面新建armeabi,将libsuperapp_base_armeabi*.so重命名为libsuperapp_base.so和libBeacon.so、libsuperapp_ex.so以及libBugly.so这3个so一起放到libs/armeabi目录下面。
•在assets/superapp目录下(工程默认有这个目录)新建lib目录,lib目录下面新建x86和armeabi-v7a目录(兼容x86和armeabi-v7a架构),libsuperapp_base_x86*.so重命名为libsuperapp_base.so放到
assets/superapp/lib/x86目录下面,libsuperapp_base_armeabi-v7a*.so重命名为libsuperapp_base.so放到assets/superapp/lib/armeabi-v7a目录下面(另需将libps.so也拷贝一份到assets/superapp/lib/armeabi-v7a目录),
请仔细确认目录名称和位置,否则会无法正常使用并拉取到数据。
注意:流量联盟SDK只提供32位的so文件,如果合作方有接入其他的64为so文件,建议删除部删除64位目录文件夹,这样在64位的手机上,系统会自动提供32位的虚拟机供应用运行,否则可能出现32位so不适陪64位虚拟机的问题
2.1.4 步骤四 在AndroidManifest.xml文件中配置用户权限
•请将下面权限配置代码复制到 AndroidManifest.xml 文件中,否则可能会无法正常使用。
以下列出的所有权限都是必要权限:
2.1.5 步骤五 在AndroidManifest.xml中声明Activity和service
•在AndroidManifest.xml 文件中,声明展示应用的Activity:
<activity android:name="com.tencent.assistant.oem.superapp.activity.HomeActivity" android:configChanges="keyboardHidden|orientation" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:screenOrientation="portrait" /> <activity android:name="com.tencent.assistant.oem.superapp.activity.ContentActivity" android:configChanges="keyboardHidden|orientation" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:screenOrientation="portrait"/>
2.1.6 步骤六 混淆注意事项
•在进行打包混淆的时候,在build文件中加入以下内容,否则SDK无法正常使用:
-dontwarn com.tencent.** -keep public class * extends android.app.Activity -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep class com.tencent.** {*;} -keep class com.qq.** {*;} -keepclasseswithmembernames class com.tencent.beaconyybwall.nativeimpl.a {native <methods>;}
2.2、应用墙SDK接口说明及使用说明
2.2.1、应用墙SDK接口说明
public static synchronized TADownloadSdkManager getInstance()
介绍:返回一个SDK接口类的单实例,接口对象必须通过该方法取得实例,获取到的实例应与主Activity生命周期相同。
返回值:返回一个接口对象的引用。
public boolean isInit()
介绍:判断是否已经初始化
返回值:SDKInitResult中有两个参数,resultCode表示返回码,resultMessage表示返回结果说明。当resultCode==0时,表示初始化成功
public synchronized void initSDK(Context context, String appKey, String appSecret, String userId, ArrayList<Integer> sceneList, SDKInitCallback callback)
介绍:初始化接口对象,显示任何Activity前必须初始化,否则会抛出异常。为了确保「监听积分墙任务完成情况」功能正常使用,初始化必须在Application中完成,如果在启动Activity前如果发现未初始化,也应做初始化。如果需要更新除context以外的参数信息,可以通过再次调用该方法更新信息。
参数说明:
Context:盛放SuperApp的容器Context,如果为null,则不进行初始化,只更新其他参数。
appKey:申请接入通过后发放的AppKey,如果为null,则不更新该参数。
appSecret:申请接入通过后发放的AppSecret1,如果为null,则不更新该参数。
userId:当前用户的唯一标识符,发放奖励时使用,如果为null,则不更新该参数。
sceneList:需要SDK支持的场景集合,如果为null,则不更新该参数。
0:应用墙
示例:
ArrayList<Integer>ids=newArrayList<Integer>(); ids.add(0);
callback:通知初始化结果的回调,如果为null,则不更新该参数。关于SDKInitCallback的定义参见下文
public void showSDKView(int type);
介绍:显示SDK的Activity场景
参数说明:
type:
0表示应用墙;
SDKInitCallback:
public interface SDKInitCallback { void onInitFinished(SDKInitResult result); void onUserTaskCompleted(PrizeInfo prize); }
public void onInitFinished(SDKInitResult result)
介绍:初始化完成的回调函数
参数说明:
SDKInitResult:定义一些常用的初始化返回码和返回内容,说明如下:
resultCode==0,初始化成功
resultCode==-1,网络不通
resultCode==-2,认证失败,请检查appKey和appSecret传入是否正确,请检查接入的应用包名和签名是否与官网注册的信息一致。
resultCode如果为其他值,请检查AndroidManifest中权限配置与接入文档是否一致,如果有做代码混淆,请检查接入文档中的混淆的语句是否加入混淆脚本,如果还返回错误,请及时沟通反馈,联系人QQ:3077973301
2.2.2、应用墙SDK初始化
启动应用时调用TADownloadSDKManager.getInstance().initSDK(xxx)方法进行初始化,(必须在Application里进行初始化,因为初始化是一个异步过程,需要预先进行,无法正常初始化的话会导致无法正常使用SDK的各项功能)如果未调用初始化函数,则无法正常使用SDK的各项功能。初始化的结果可以在SDKInitCallback的onInitFinished回调方法中得到,也可以调用TADownloadSdkManager getInstance().isInit()来查询SDK是否初始化完成。参数userId没有的话可以填null。SDKInitCallback的onUserTaskCompleted方法可以不实现。
2.2.3、显示应用墙
调用TADownloadSDKManager.getInstance().showSDKView(0)来显示应用墙。
2.2.4、电量监控场景广告使用(可选功能)
调用
TADownloadSDKManager.getInstance().startBatteryMonitor(BatteryConditionCallback callback)来启动SDK对手机电量的监控功能,当手机电量到达SDK后台配置的弹窗条件时,会通过callback.onConditionReaced(DialogWrapper dialog)方法传递一个DialogWrapper对象,开发者可以根据需要通过调用DialogWrapper.show(Activity activity)方法来让广告弹窗显示,简单的示例代码如下:
TADownloadSdkManager.getInstance().startBatteryMonitor(new BatteryConditionCallback() { @Override public void onConditionReached(DialogWrapper dialog) { dialog.show(MainActivity.this); } });
也可以调用DialogWrapper.dismiss()方法来关闭弹窗
如果要停止SDK对手机电量的监控功能,则可以调用TADownloadSDKManager.getInstance().stopBatteryMonitor()方法。
2.2.5、Push功能接入(可选功能)
Push分为下载安装等本地Push和运营push两种,本地push和应用墙搭配使用,积分墙不能接入。运营push则积分墙和应用墙都可以接入。
2.2.5.1 本地push接入
先在AndroidManifest中注册Serivce如下
<service android:name="com.tencent.assistant.push.PushService" />
然后调用TADownloadSDKManager.getInstance().startLocalPush(int smallIcon, int tickerIcon)方法,参数smallIcon是用来设置notification的smallIcon属性的,tickerIcon是用来设置ticker显示时的icon的,由于Android系统的限制tickerIcon的尺寸有如下规则,否则会显示不全
如果不遵循该规则,则在部分手机上可能出现如下现象:
2.2.5.2 运营push接入
先在AndroidManifest中注册Service和Receiver如下
<service android:name="com.tencent.assistant.push.PushService" />
<receiver android:name="com.tencent.assistant.timer.ScheduleJobReceiver"> <intent-filter android:priority="1000"> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="com.tentcent.superapp.action.SCHEDULE_JOB" /> <action android:name="android.intent.action.SCREEN_ON" /> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> </receiver>
然后调用TADownloadSDKManager.getInstance().startOperatePush(int smallIcon, int tickerIcon)接口,参数解释如上,另注:如果先调用了本地Push接口再调用这个,参数会互相覆盖,反之亦然。
2.3、应用墙接入注意事项
2.3.1 appkey和appsecret必须使用分配的,否则无法正常使用SDK
2.3.2 apk必须用申请时的签名文件进行签名,否则无法正常使用SDK
2.3.3 初始化失败常用错误码说明如下
SDKInitResult:定义一些常用的初始化返回码和返回内容,说明如下:
resultCode==0,初始化成功
resultCode==-1,网络不通
resultCode==-2,认证失败,请检查appKey和appSecret传入是否正确,请检查接入的应用包名和签名是否与官网注册的信息一致。
resultCode如果为其他值,请检查AndroidManifest中权限配置与接入文档是否一致,如果有做代码混淆,请检查接入文档中的混淆的语句是否加入混淆脚本,如果还返回错误,请及时沟通反馈,联系人QQ:3077973301
3、积分墙SDK接入步骤及常见问题答疑
3.1、 积分墙SDK接入准备
3.1.1 步骤一 将sdk的jar包导入您的工程中
&bull新建libs文件夹,将jar包添加入。
3.1.2 步骤二 添加assets内容
&bull将assets.zip解压,将里面全部文件导入apk工程的assets中,确保其中文件在apk打包后的assets根目录下存在。
3.1.3 步骤三 将so导入您的工程中
&bull在步骤一建好的libs下面新建armeabi
&bull将libsuperapp_base_armeabi*.so重命名为libsuperapp_base.so和libps.so、libBeacon.so、libsuperapp_ex.so以及libBugly.so这4个so一起放到libs/armeabi目录下面。
&bull在assets/ superapp目录下(工程默认有这个目录)新建lib目录,lib目录下面新建x86目录(兼容x86架构),libsuperapp_base_x86*.so重命名为libsuperapp_base.so放到assets/lib/x86目录下面,请仔细确认目录名称和位置,否则会无法正常使用并拉取到数据。
3.1.4 步骤四 在AndroidManifest.xml文件中配置用户权限
&bull请将下面权限配置代码复制到 AndroidManifest.xml 文件中,否则可能会无法正常使用。
以下列出的所有权限都是必要权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> <uses-permission android:name="com.android.launcher.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" /> <android:uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
注意:"android.permission.PACKAGE_USAGE_STATS"权限是用户在玩权限,需要用户主动打开,所以在进入积分墙之前,合作方应该添加一个引导用户打开该权限的逻辑。
3.1.5 步骤五 在AndroidManifest.xml中声明Activity和service
&bull在AndroidManifest.xml 文件中,声明展示应用的Activity:
<activity android:name="com.tencent.assistant.oem.superapp.activity.HomeActivity" android:configChanges="keyboardHidden|orientation" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:screenOrientation="portrait" />
&bull在AndroidManifest.xml 文件中,声明应用试玩监听的应用,如果不注册将无法监听积分任务应用的试玩情况:
<service android:name="com.tencent.assistant.oem.superapp.scorewall.AppMonitorService"/>
3.1.6 步骤六 混淆注意事项
&bull在进行打包混淆的时候,在build文件中加入以下内容,否则SDK无法正常使用:
-dontwarn com.tencent.** -keep public class * extends android.app.Activity -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep class com.tencent.** {*;} -keep class com.qq.** {*;} -keepclasseswithmembernames class com.tencent.beaconyybwall.nativeimpl.a {native <methods>;}
3.2、 积分墙SDK接口说明及使用说明
3.2.1、积分墙SDK接口说明
public static synchronized TADownloadSdkManager getInstance()
介绍:返回一个SDK接口类的单实例,接口对象必须通过该方法取得实例,获取到的实例应与主Activity生命周期相同。
返回值:返回一个接口对象的引用。
public boolean isInit()
介绍:判断是否已经初始化
返回值:SDKInitResult中有两个参数,resultCode表示返回码,resultMessage表示返回结果说明。当resultCode==0时,表示初始化成功
public synchronized void initSDK(Context context, String appKey, String appSecret, String userId, ArrayList<Integer> sceneList, SDKInitCallback callback)
介绍:初始化接口对象,显示任何Activity前必须初始化,否则会抛出异常。为了确保「监听积分墙任务完成情况」功能正常使用,初始化必须在Application中完成,如果在启动Activity前如果发现未初始化,也应做初始化。如果需要更新除context以外的参数信息,可以通过再次调用该方法更新信息。
参数说明:
Context:盛放SuperApp的容器Context,如果为null,则不进行初始化,只更新其他参数。
appKey:申请接入通过后发放的AppKey,如果为null,则不更新该参数。
appSecret:申请接入通过后发放的AppSecret1,如果为null,则不更新该参数。
userId:当前用户的唯一标识符,发放奖励时使用,如果为null,则不更新该参数。
sceneList:需要SDK支持的场景集合,如果为null,则不更新该参数。
1:积分墙
示例:
ArrayList<Integer> ids = new ArrayList<Integer>(); ids.add(1);
callback:通知初始化结果的回调,如果为null,则不更新该参数。关于SDKInitCallback的定义参见下文
备注:
如果不接受在Application 里面完成初始化,需要在application 类中定义函数:
public void initSuperApp(Context context)
在这个函数中调用initSDK 函数完成初始化,这样在应用意外重启的时候我们可以调用这个函数及时完成初始化,保证奖励能够及时发放,如果不在application 完成初始化也不定义
initSuperApp 函数,则意外重启会丢失任务完成奖励。
public void showSDKView(int type);
介绍:显示SDK的Activity场景
参数说明:
type:
1表示积分墙;
SDKInitCallback: public interface SDKInitCallback { void onInitFinished(SDKInitResult result); void onUserTaskCompleted(PrizeInfo prize); } public void onInitFinished(SDKInitResult result)
介绍:初始化完成的回调函数
参数说明:
SDKInitResult:定义一些常用的初始化返回码和返回内容,说明如下:
resultCode==0,初始化成功
resultCode==-1,网络不通
resultCode==-2,认证失败,请检查appKey和appSecret传入是否正确,请检查接入的应用包名和签名是否与官网注册的信息一致
resultCode==-100,其他错误,请检查AndroidManifest中权限配置与接入文档是否一致,如果有做代码混淆,请检查接入文档中的混淆的语句是否加入混淆脚本
3.2.2、积分墙SDK初始化
启动应用时调用TADownloadSDKManager.getInstance().initSDK(xxx)方法进行初始化,(最好在Application里进行初始化,因为初始化是一个异步过程,需要预先进行,无法正常初始化的话会导致无法正常使用SDK的各项功能)如果未调用初始化函数,则无法正常使用SDK的各项功能。初始化的结果可以在SDKInitCallback的onInitFinished回调方法中得到,也可以调用TADownloadSdkManager getInstance().isInit()来查询SDK是否初始化完成。参数userId必须填写,没有的话可以填null。如果用户登录了app或者切换了帐号请务必重新调用初始化函数。SDKInitCallback的onUserTaskCompleted方法如果要使用积分墙本地发放奖励的话必须实现,否则可以不实现。
3.2.3、显示积分墙SDK
调用TADownloadSDKManager.getInstance().showSDKView(1)来显示积分墙。
3.2.4、电量监控场景广告使用(可选功能)
调用
TADownloadSDKManager.getInstance().startBatteryMonitor(BatteryConditionCallback callback)来启动SDK对手机电量的监控功能,当手机电量到达SDK后台配置的弹窗条件时,会通过callback.onConditionReaced(DialogWrapper dialog)方法传递一个DialogWrapper对象,开发者可以根据需要通过调用DialogWrapper.show(Activity activity)方法来让广告弹窗显示,简单的示例代码如下:
TADownloadSdkManager.getInstance().startBatteryMonitor(new BatteryConditionCallback() { @Override public void onConditionReached(DialogWrapper dialog) { dialog.show(MainActivity.this); } });
也可以调用DialogWrapper.dismiss()方法来关闭弹窗,如果要停止SDK对手机电量的监控功能,则可以调用TADownloadSDKManager.getInstance().stopBatteryMonitor()方法。
3.2.5、push功能接入(可选功能)
Push分为下载安装等本地Push和运营push两种,本地push和应用墙搭配使用,积分墙不能接入。运营push则积分墙和应用墙都可以接入。
3.2.5.1本地push接入
先在AndroidManifest中注册Serivce如下
然后调用TADownloadSDKManager.getInstance().startLocalPush(int smallIcon, int tickerIcon)方法,参数smallIcon是用来设置notification的smallIcon属性的,tickerIcon是用来设置ticker显示时的icon的,由于Android系统的限制tickerIcon的尺寸有如下规则,否则会显示不全。
如果不遵循该规则,则在部分手机上可能出现如下现象:
3.2.5.2运营push接入
先在AndroidManifest中注册Service和Receiver如下
<receiver android:name="com.tencent.assistant.timer.ScheduleJobReceiver"> <intent-filter android:priority="1000"> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="com.tentcent.superapp.action.SCHEDULE_JOB" /> <action android:name="android.intent.action.SCREEN_ON" /> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> </receiver> <service android:name="com.tencent.assistant.push.PushService" />
然后调用TADownloadSDKManager.getInstance().startOperatePush(int smallIcon, int tickerIcon)接口,参数解释如上,另注:如果先调用了本地Push接口再调用这个,参数会互相覆盖,反之亦然。
3.3、 积分墙货币发放规范
3.3.1、概述
应用宝后台发放奖励有两种方式:
(1) 、前端发放:通过SDK建立安全通道的方式发放奖励;
(2) 、后台发放:通过后台对接的方式发放奖励;
如果选择通过SDK建立安全通道的方式发放奖励,可以忽略本节,如果选择通过后台对接的方式发放奖励,那么必须满足这里定义的规范。
3.3.2、接入流程
(1) 、开发者在申请接入时,向应用宝后台注册接收Push信息的Url。
(2) 、应用宝后台向开发者分配奖励发放密钥(appSecretIssue)。
(3) 、应用宝推送时的IP为一下四个,开发者只能接受以下IP地址推送的发放记录:
140.207.62.199
101.226.86.179
219.133.40.97
119.147.207.162
3.3.3、注册URL需要满足的条件
(1) 、注册的Url 需要接收Post 请求,Body内容为Json格式。
(2) 、应用宝后台推送消息示例:
{ "issueList": [ { "appId": "0", "issueNum": "0", "issueTime": "1441415624655", "moneyUnit": "黄金", "reward": "20", "signature": "87654321908765432109098765432199", "taskGroup": "6", "taskId": "0", "taskIndex": "3", "totalReward": "100", "userId": "wwwwwwwwwwwwwwwwwwwww" }, { "appId": "1", "issueNum": "1", "issueTime": "1441415624655", "moneyUnit": "黄金", "reward": "20", "signature": "87654321908765432109098765432199", "taskGroup": "6", "taskId": "1", "taskIndex": "3", "totalReward": "100", "userId": "wwwwwwwwwwwwwwwwwwwww" } ] }
(3)、应用宝后台推送消息字段说明
字段名 | 数据类型 | 含义 | 备注 |
---|---|---|---|
appId | string | 用户下载应用的唯一标识 | |
issueNum | string | 发放流水号 | |
issueTime | string | 发放时间,单位为毫秒 | |
moneyUnit | string | 宿主(接入方)货币单位 | |
reward | string | 发放的货币数量,单位为宿主(接入方)货币单位 | |
taskGroup | string | 任务组Id | |
taskId | string | 任务Id,任务唯一标识 | |
taskIndex | string | 任务序号 | |
totalReward | string | 总的奖励数 | |
userId | string | 宿主用户唯一标识 | |
signature | string | 本条发放记录的签名 |
说明:
接入方必须对每条发放记录进行签名校验,以确保该请求来自应用宝后台,且未被篡改。
签名signature的计算方式如下:
Signature=md5(reward+"_"+taskIndex+"_"+issueNum+"_"+taskId+"_"+appId+"_"+taskGroup+"_"+totalReward+"_"+moneyUnit+"_"+appSecretIssue+"_"+issueTime)
其中:
appSecretIssue——发放密钥,接入时由应用宝后台向接入方提供。
例如上边的发放列表中的第一个发放记录的signature的计算方式如下:(假设appSecretIssue为“111111111111”)
Signature = md5("20"+"_"+"3"+"_"+"0"+"_"+"0"+"_"+"0"+"_"+"6"+"_"+"100"+"_"+"黄金"+"_"+"111111111111"+"_"+"1441415624655")
接入方必须对发放流水号进行记录,确保一个发放流水号只发放一次,以避免同一记录多次发放。
但是注意:由于各种难以预料的原因可能造成如下情况:
应用宝后台推送过去了,开发者也收到了,但是开发者回包的时候由于不能预料的原因(例如网络抖动等)出了问题,这时应用宝后台会认为开发者没有收到,就会重复推送,这种情况需要开发者自己处理,但是开发者收到这种情况下推送的数据时应该以成功的格式回包,回包的具体格式见4)
(4) 、开发者所注册URL 需以如下格式回包
{ "ret": "0", "issueNumList": [ "0", "1", ], "resTime": "1441776758267", "nonce": "1869870458", "signature": "5e1a52991e19ad64577fce04b67bd556" }
其中各个字段的含义如下表:
字段名 | 数据类型 | 含义 | 备注 |
---|---|---|---|
ret | string | 接收结果,0成功,-1失败 | |
issueNumList | vector<string> | 开发者响应时需要把Push过去的发放记录列表中的每个发放记录的发放流水号返回来(以红色标出)。 | |
resTime | string | 开发者响应时的时间戳,单位为毫秒 | |
nonce | string | 开发者每次响应需要生成一个随机数 | |
signature
string 开发者每次响应需要生成一个签名 | |||
errMsg | string | 开发者返回的错误信息(最多10字节) |
说明:
signature——响应签名,string 类型,32位小写Md5,应用宝后台收到回包后,会对签名(signature)字段进行校验,只有校验通过,才认为是开发者的合法回包,签名(sinature)的计算公式如下:
signature=md5( ret+resTime+issueNum0+....+ssueNumN+appSecretIssue+nonce)
其中:
“issueNum0+....+issueNumN”:表示把回包中的发放流水号列表(issueNumList)中的每一个发放流水号都拼接起来,而且必须按照回包中发放流水号列表(issueNumList)中的顺序进行计算。
appSecretIssue:接入时由应用宝后台向开发者提供的奖励发放密钥。
本例中回包的signature计算如下:(假设appSecretIssue为“111111111111”)
Signature = md5("0"+"1441776758267"+"0"+"1"+"111111111111"+"1869870458")
回包格式里的ret: 只要有任凭一条处理成功了,这里就回0,只有全部都失败时,才填-1
回包格式里的IssueList:只填你们成功处理的流水号,如果我们推送了5个,你们成功处理了4个,那么这里就只填那4个
3.4、 积分墙货币接入注意事项
3.4.1 appkey和appsecret必须使用分配的,否则无法正常使用SDK
3.4.2 apk必须用申请时的签名文件进行签名,否则无法正常使用SDK
3.4.3 初始化失败常用错误码说明如下
SDKInitResult:定义一些常用的初始化返回码和返回内容,说明如下:
resultCode==0,初始化成功
resultCode==-1,网络不通
resultCode==-2,认证失败,请检查appKey和appSecret传入是否正确,请检查接入的应用包名和签名是否与官网注册的信息一致
resultCode==-100,其他错误,请检查AndroidManifest中权限配置与接入文档是否一致,如果有做代码混淆,请检查接入文档中的混淆的语句是否加入混淆脚本,其他错误码请及时沟通反馈,联系人QQ:3077973301
4、API-SDK接入步骤及常见问题答疑
4.1、API-SDK接入准备
4.1.1 步骤一
将sdk的jar包导入您的工程中新建libs文件夹,将jar包添加入。
4.1.2 步骤二
将libsuperapp_base.so(压缩包里面的文件名libsuperapp_base_xxx.so需要重命名为libsuperapp_base.so后使用)导入您的工程中
在上一步建好的libs下面新建armeabi和armeabi-v7a文件夹,将libsuperapp_base.so添加进去,否则会无法正常使用并拉取到数据。
4.1.3 步骤三
在AndroidManifest.xml文件中配置用户权限请将下面权限配置代码复制到 AndroidManifest.xml 文件中,否则可能会无法正常使用。
以下列出的所有权限都是必要权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> <uses-permission android:name="com.android.launcher.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.GET_TASKS"/>
4.1.4 步骤五 混淆注意事项
在进行打包混淆的时候,在build文件中加入以下内容,否则SDK无法正常使用:
-dontwarn com.tencent.** -keep public class * extends android.content.BroadcastReceiver -keep class com.tencent.** {*;} -keep class com.qq.** {*;}
4.2、API-SDK接口说明及使用说明
4.2.1、SDK接口说明
public static synchronized APISDK getInstance()
介绍:返回一个SDk接口类的单实例,接口对象必须通过该方法取得实例,获取到的实例应与主Activity生命周期相同。
返回值:返回一个接口对象的引用。
public void initSDK(Context context, String appKey, String appSecret, APIInitCallback callback)
介绍:初始化接口对象,拉取数据前必须初始化,否则无法拉取到数据。初始化建议在Application中完成,如果在启动Activity前如果发现未初始化,也应做初始化。
参数说明:
Context:盛放SuperApp的容器Context,如果为null,则不进行初始化,只更新其他参数。
appKey:申请接入通过后发放的AppKey,如果为null,则不更新该参数。
appSecret:申请接入通过后发放的AppSecret,如果为null,则不更新该参数。
callback:通知初始化结果的回调,如果为null,则不更新该参数。关于APIInitCallback的定义参见下文
void initSDKWithDebugMode(Context context, String appKey, String appSecret, APIInitCallback callback)
介绍:和前面介绍的initSDK都是初始化接口对象,功能是一样的,参数和initSDK完全一样。不过此接口连接的是测试环境,可以在SDK接入测试阶段使用接口initSDKWithDebugMode,应用发布的时候换回initSDK接口。
APIInitCallback:
public interface APIInitCallback { void onInitFinished(int resultCode); } void onInitFinished(int resultCode)
介绍:初始化完成的回调函数
参数说明:
resultCode: 0表示初始化成功,不为0代表初始化失败的原因的代码
long getServerTime(long time)
介绍:将手机本地时间转化为服务器时间,完成时间的同步,以免随意设置手机时间后服务器无法正确识别
参数说明:
time:手机本地时间,以ms为单位
返回值:返回经过校准后的时间
调用时机:在哪里使用就在哪里调,不要缓存这个时间
注意:本地上传至服务器的时间请调用此方法校准一下,如:
APISDK.getInstance().getServerTime(System.currentTimeMillis()) public DataGetterManager dataGetter()
介绍:获取拉取数据的接口类 DataGetterManager :
public interface DataGetterManager { public int request(int cmd,String jsonReq, DataCallback callback); } int request(int cmd,String jsonReq, DataCallback callback)
介绍:拉取数据的调用函数
参数说明:
cmd: 命令字
jsonReq:拉取数据的请求参数,将json对象转换成String类型即可
Callback:拉取数据后的回调
返回值为这次拉取请求的请求序列号,在数据回调回来的时候带上,用它来判断返回的数据是哪次请求的返回数据。
DataCallback:
public interface DataCallback { public void onResponse(int req,int errorCode, String result); } void onResponse(int req,int cmd, int errorCode, String result)
介绍:拉取数据的调用函数
参数说明:
req: 请求的序列号
cmd:请求的命令字
errorCode:为0表示拉取成功,不为0则表示错误码
result:拉取成功则为返回的json对象的String,拉取不成功则为null
public StatisticsManager getStManager()
介绍:获取统计上报的接口类
StatisticsManager public interface StatisticsManager { public void report(int type, String reportString); public void printLog(boolean enable); } void report(int type, String reportString);
介绍:拉取数据的调用函数
参数说明:
type: 上报类型
reportString:上报内容
void printLog(boolean enable)
介绍:拉取数据的调用函数
参数说明:
enable: 是否打印log,true为打印,false为不打印
4.2.2 SDK的初始化=
启动应用时调用APISDK.getInstance().initSDK(xxx)方法进行初始化,(在Application里进行初始化,因为初始化是一个异步过程,需要预先进行,无法正常初始化的话会导致无法正常使用SDK的各项功能),如果未调用初始化函数,则无法正常使用SDK的各项功能。初始化的结果可以在SDKInitCallback 的onInitFinished回调方法中得到。
如果初始化返回码不为0,请检查appKey,appSecret是否正确填写,apk有没有用申请时使用的签名进行签名。
4.2.3 拉取app列表
参考使用实例1(见下文4.3.1)
4.2.4 拉取app详情
参考使用实例2(见下文4.3.2)
4.2.5 拉取软件列表
参考使用实例3(见下文4.3.3)
4.2.6 拉取游戏列表
参考使用实例4(见下文4.3.4)
4.2.7 统计信息上报
API上报接口的调用,接入者使用上报接口时请全部使用及时上报,不要自己再做缓存处理,API换自动进行相应的缓存处理。
a.使用APISDK.getInstance.getStManager()获取统计上报管理类StatisticsManager的对象
b.调用StatisticsManager.report(int type, String reportStr)方法来进行上报
type表示上报类型,reportStr表示上报的串,type的具体类型说明如下:
type = 0 曝光
type = 1 点击
type = 2 下载开始
type = 3 下载完成
type = 8 安装开始
type = 4 安装完成
如返回错误,请及时沟通反馈,联系人QQ 3077973301。
c.调用StatisticsManager.printLog(boolean enbale)方法来开启上报log打印,传入true开启log打印,传入false关闭log打印,默认关闭,注:新版本SDK本身拥有简单的上报检测逻辑,对于明显不对的上报会直接过滤掉并通过log打印出来,打开printLog接口可以看到,如下:
4.2.8 洗包接口
参考使用实例4(见下文4.3.5)
4.3、SDK接口使用实例
4.3.1 获取伪分类列表数据(实例1)——PS:后续提供真实列表数据
备注:
1. 伪分类就是将所有应用分类整体通过人工配备标签映射的方式获取数据。
备注:如伪分类能拉取到相对应用数据则标签映射成功, 反之则失败
2.mNextPageContext:String为翻页的上下文,第一页时为空,如果翻页请求下一页,内容为上一次请求返回的pageContext(解析json字符串获取pageContext字段内容);
3.pageSize的值不能大于50。
备注:获取下一页,通过上一次请求的的hasNext参数(解析json字符串获取hasNext字段内容)。
4.3.2 获取详情页数据(实例2)
备注:appId和channelId为列表项应用数据返回的数据。
4.3.3获取软件列表数据(实例3)
备注:reserved为保留字段,必须传空””
4.3.4 获取游戏列表数据(实例4)
备注:reserved为保留字段,必须传空””
4.3.5 洗包接口(具体协议见下文4.5.2)
4.3.6 榜单接口(具体协议见下文4.5.3)
(1)协议请求
(2)请求下一页
4.3.7 获取搜索数据
备注:
pageContext:String为翻页的上下文,第一页时为空,如果翻页请求下一页,内容为上一次请求返回的pageContext(解析json字符串获取pageContext字段内容);
pageSize的值不能大于50。
searchSrc:查询类型,0:所有类型,-1:游戏,-2:软件
searchScene:场景:0:搜索场景,1:非搜索场景
4.3.8 获取必备数据
备注:reserved为保留字段,必须传空””
4.3.9 智能推荐-猜你喜欢
备注:
pageContext:String为翻页的上下文,第一页时为空,如果翻页请求下一页,内容为上一次请求返回的pageContext(解析json字符串获取pageContext字段内容);
pageSize的值不能大于50。
scenceId:内容类型,0:所有类型,-1:游戏,-2:软件
4.3.10 智能推荐-One-more-app
备注:
pageContext:String为翻页的上下文,第一页时为空,如果翻页请求下一页,内容为上一次请求返回的pageContext(解析json字符串获取pageContext字段内容);
pageSize的值不能大于50。
scenceId:内容类型,0:所有类型,-1:游戏,-2:软件
4.3.11 获取详细的分类列表(返回的结果列表中含有详细的app信息)
mRequestType值为9
备注:参数说明请参考粗略的分类列表,mRequestType值为9
4.3.12 获取App榜单协议
备注:接口命令字11
request方法定义如下:
4.3.13 获取应用分类和聚合标签
备注:接口命令字12
request方法定义如下:
4.3.14获取聚合标签下的应用列表
备注:
pageContext:String为翻页的上下文,第一页时为空,如果翻页请求下一页,内容为上一次请求返回的pageContext(解析json字符串获取pageContext字段内容);
pageSize的值不能大于50
tagId为上一条协议返回的聚合标签tagList里的id
备注:接口命令字13
request方法定义如下:
4.3.15 获取搜索联想词协议
备注:接口命令字14
request方法定义如下:
4.3.16 获取搜索热词
备注:接口命令字15
request方法定义如下:
4.3.17 获取同作者应用
备注:接口命令字16
request方法定义如下:
4.3.18 通过包名获取应用标签
备注:接口命令字17
request方法定义如下:
4.3.19 通过应用标签获取到对应的应用列表
备注:接口命令字18
request方法定义如下:
4.4、API-SDK后台返回数据json说明
4.4.1 粗略的分类列表协议(appList只返回简要的app信息)
第一次请求,请求第一页数据:
categoryName:填写对应的分类名称
pageContext:分页上下文,首次请求时无需填写,第二次请求下一页时,客户端只需用后台返回的pageContext值对请求中的pageContext字段赋值,原样带上来即可
pageSize:页大小
type:1 request: { "categoryKey": "游戏", "pageContext": "", "pageSize": 2 } response: { "appList": [ { "apkId": "53064964", "apkMD5": "34AC9EA77C5EA85796593B620589AF20", "apkUrl": "http://dd.myapp.com/16891/34AC9EA77C5EA85796593B620589AF20.apk?fsname=com.pingan.pinganwifi_4.2.0_540.apk", "appId": "11713520", "appName": "平安WiFi", "channelId": "000116083232343832373931", "dataAnalysisId": "", "fileSize": "10299288", "flag": "16533", "iconUrl": "http://shp.qpic.cn/ma_icon/0/icon_11713520_1462508874/96", "packageName": "com.pingan.pinganwifi", "recommendId": "BAIAAYjIEGNGDHJOMkphSmtJbXF2WFAMYAF3AAABfgY4XOE4=", "source": 11713531, "totalDownloadTimes": "11959960", "versionCode": "540", "versionName": "4.2.0" }, { "apkId": "53016811", "apkMD5": "B332CABDD7EF793BEFCC4035ACFDA68F", "apkUrl": "http://dd.myapp.com/16891/B332CABDD7EF793BEFCC4035ACFDA68F.apk?fsname=com.tencent.qqpim_6.4.3_1260.apk", "appId": "8461", "appName": "QQ同步助手 刷机必备通讯录短信一键备份", "channelId": "", "dataAnalysisId": "", "fileSize": "6289946", "flag": "16533", "iconUrl": "http://shp.qpic.cn/ma_icon/0/icon_8461_1461897331/96", "packageName": "com.tencent.qqpim", "recommendId": "fgIAAYjIEAJGDDNKLTU0Y05FakNzVlAMYAN3AAABmAYTMTAYXTQYRqL25aOU4leE3es8qP3S+f8AAAAALJXGImH1UDDhwAAAAAA", "source": 8494, "totalDownloadTimes": "152344544", "versionCode": "1260", "versionName": "6.4.3" } ], "hasNext": true, "pageContext": "2", "ret": 0, "tagInfo": "349900019,349900027,349900031,349900040,349900041,349900042,349900023,349900017,349900028,"}
备注:flag字段需要转换为long,然后按位标识:
1.第0、1位标识广告; 0-不确定 1-无广告 2-有广告
2.第2、3位标识官方; 0-不确定 1-官方 2-非官方
3. 第4、5位标识病毒; 0-不确定 1-无病毒 2-有病毒
第二次调用,请求下一页数据:
type:1
request: { "categoryName": "游戏", "pageContext": "2", "pageSize": 2 } response: { "appList": [ { "apkId": "22116956", "apkUrl": "http://dd.myapp.com/16891/9F1459EC0D17DCD691667FE40B2C42F6.apk?fsname=com.mogujie_7.2.7.151124005_727000.apk", "appId": "4846", "appName": "蘑菇街", "channelId": "", "dataAnalysisId": "", "fileSize": "25704779", "flag": "16533", "iconUrl": "http://pp.myapp.com/ma_icon/0/icon_4846_1448865003/96", "packageName": "com.mogujie", "recommendId": "AgIAAYjIEAJGDHRjcFdNLS1JTG11TVAMYAGj9UJZKPVCWOg=", "source": 3, "totalDownloadTimes": "43727883", "versionCode": "727000", "versionName": "7.2.7.151124005" }, { "apkId": "22114321", "apkUrl": "http://dd.myapp.com/16891/8D6CB62D190B660B93ADFE2371106CA7.apk?fsname=cn.amazon.mShop.android_6.1.3.600_7131910.apk", "appId": "9698", "appName": "亚马逊", "channelId": "", "dataAnalysisId": "", "fileSize": "18289334", "flag": "16533", "iconUrl": "http://pp.myapp.com/ma_icon/0/icon_9698_1448361745/96", "packageName": "cn.amazon.mShop.android", "recommendId": "AgIAAYjIEAJGDHRjcFdNLS1JTG11TVAMYAKj9UJZKPVCWOg=", "source": 3, "totalDownloadTimes": "10387948", "versionCode": "7131910", "versionName": "6.1.3.600" } ], "hasNext": true, "pageContext": "4", "ret": 0, "tagInfo": "249900025,109900001,109900002,199900015,109900014,109900025," }
详情协议:
type:2
request: { "reqParaList": [ { "appId": "6633", "channelId": "000216074150495f595942" } ] } response: { "appId2AppInfoMap": { "6633": { "apkId": "22139918", "apkMd5": "E0B564DDFD378AD0BE63B5997A83428E", "apkUrl": "http://dd.myapp.com/16891/E0B564DDFD378AD0BE63B5997A83428E.apk?fsname=com.tencent.mobileqq_6.0.1_302.apk", "appId": "6633", "appName": "QQ", "averageRating": 3, "channelId": "", "description": "-----QQ·乐在沟通----- - 客服热线:0755-83763333 (服务时间:8:00 - 23:00)", "fileSize": "28686893", "iconUrl": "http://pp.myapp.com/ma_icon/0/icon_6633_1448632557/96", "parentId": -1, "pkgName": "com.tencent.mobileqq", "screenshots": [ "http://pp.myapp.com/ma_pic2/0/shot_6633_1_1448632555/550", "http://pp.myapp.com/ma_pic2/0/shot_6633_2_1448632555/550", "http://pp.myapp.com/ma_pic2/0/shot_6633_3_1448632555/550", "http://pp.myapp.com/ma_pic2/0/shot_6633_4_1448632555/550" ], "totalDownloadTimes": "3248649762", "versionCode": "302", "versionName": "6.0.1", "editorIntro": "小编推荐语" } }, "ret": 0 }
软件列表协议:
type:3
request:{ "reserved": "" } response: { "appList": [ { "apkId": "53007009", "apkMD5": "4AB676B1A181482187D7588B3EBBFDBD", "apkUrl": "http://dd.myapp.com/16891/4AB676B1A181482187D7588B3EBBFDBD.apk?fsname=com.sankuai.meituan_6.8.1_381.apk", "appDownCount": 0, "appId": "11109", "appName": "美团-团购美食电影酒店优惠", "averageRating": 0, "categoryId": 0, "categoryName": "", "channelId": "", "dataAnalysisId": "", "fileSize": "20256229", "iconUrl": "http://shp.qpic.cn/ma_icon/0/icon_11109_1462848474/96", "packageName": "com.sankuai.meituan", "recommendId": "BAwcLEYAUAxsdscGEzEwNTg7rSuCofFM8wMaH2iS31agOX9Vha7Cf4e1v+Ur7EiAyWAKy8yQzVAAAAAAAAAAA=", "shortDesc": "1元带你吃喝玩乐!", "source": 11120, "versionCode": "381", "versionName": "6.8.1" }, { "apkId": "53017272", "apkMD5": "F86CAE549B69E54DC0F5E8C1FF27832A", "apkUrl": "http://dd.myapp.com/16891/F86CAE549B69E54DC0F5E8C1FF27832A.apk?fsname=com.douban.radio_4.4.8_448.apk", "appDownCount": 0, "appId": "4847", "appName": "豆瓣FM", "averageRating": 0, "categoryId": 0, "categoryName": "", "channelId": "", "dataAnalysisId": "", "fileSize": "7428320", "iconUrl": "http://shp.qpic.cn/ma_icon/0/icon_4847_1461899742/96", "packageName": "com.douban.radio", "recommendId": "BAwcLEYAUAxsdsQGEzEwNTg4NTE2MjEwMjM5NDA2MTj/qj1Iuao7OPXz2Nz8IzibOUtiAyWAKy8yQzVAAAAAAAAAAA=", "shortDesc": "个性化音乐推荐收听工具", "source": 4858, "versionCode": "448", "versionName": "4.4.8" } ], "ret": 0 }
游戏列表协议:
type:4
request:{ "reserved": "" } response: { "gameList": [ { "apkId": "22491604", "apkMD5": "B6E72EF6A0D603EA011031A8EBB59D46", "apkUrl": "http://dd.myapp.com/16891/B6E72EF6A0D603EA011031A8EBB59D46.apk?fsname=org.mieshiqq_2.2.99_399.apk", "appId": "236623", "appName": "忘仙", "channelId": "0002160c5959422d4c4c4c4d2d4c4259", "dataAnalysisId": "", "fileSize": "10349298", "iconUrl": "http://shp.qpic.cn/ma_icon/0/icon_236623_1452794964/96", "packageName": "org.mieshiqq", "recommendId": "fgIAAYjIEAJGDDNKLTU0Y05FakNzVlAMYAN3AAABmAYTMTA1MTMxMTQzNTcHJoM1JybE9Xa0", "shortDesc": "一款中国仙侠风格的手机网游。", "source": 236645, "versionCode": "399", "versionName": "2.2.99" }, { "apkId": "22502897", "apkMD5": "B333E3BAC255A18CE88D64C5363112EF", "apkUrl": "http://dd.myapp.com/16891/B333E3BAC255A18CE88D64C5363112EF.apk?fsname=com.tencent.tmgp.msgj_1.030_30.apk", "appId": "11224214", "appName": "刀塔挂机", "channelId": "0002160c5959422d4c4c4c4d2d4c4259", "dataAnalysisId": "", "fileSize": "20324168", "iconUrl": "http://shp.qpic.cn/ma_icon/0/icon_11224214_1452829670/96", "packageName": "com.tencent.tmgp.msgj", "recommendId": "fgIAAYjIEAJGDDNKLTVZY1JFaktzTlAMYAN3AAABiQYTMTA1MTMxMTQzOTMxNjA1NDAxOBEAkCACNq0Be", "shortDesc": "磨兽手游归来,最小客户端MMO。", "source": 11224236, "versionCode": "30", "versionName": "1.030" } ], "ret": 0 }
搜索协议:
type:5
request: { "keyword": "关键字", "pageContext": "0", "pageSize": 20, "searchSrc":"0", "searchScene":1 } response: { "appList": [ { "apkId": "53065673", "apkMD5": "465DDB02A75F2FABFF613BA38B328282", "apkUrl": "http://dd.myapp.com/16891/465DDB02A75F2FABFF613BA38B328282.apk?fsname=com.tencent.news_4.9.8_498.apk", "appDownCount": 0, "appId": "5613", "appName": "腾讯新闻", "averageRating": 0, "categoryId": 110, "categoryName": "新闻", "channelId": "", "dataAnalysisId": "", "fileSize": "23252492", "iconUrl": "http://shp.qpic.cn/ma_icon/0/icon_5613_1462516995/96", "packageName": "com.tencent.news", "recommendId": "fgIAAYjIEAJGDDNKLTVZY1JFaktzTlAMYAF23AYTMTA1MTMxMTQzOTMxNTnyEVcYiYj8EvYTQAPrKy88oKfhcwmyw9SUm1wS7s7+6j0lRGIeyPylD4+X/eyLHb8EybQ/4otMMInCokxms5uzUJmlXuPqTpguk8ehJxeyVxiJiNVAw4gAAAAAAA==", "shortDesc": "一手资讯 一秒掌握", "source": 5646, "versionCode": "498", "versionName": "4.9.8" }, { "apkId": "52674344", "apkMD5": "639B7A311E27F39BB10C35D154F70D7F", "apkUrl": "http://dd.myapp.com/16891/639B7A311E27F39BB10C35D154F70D7F.apk?fsname=com.tencent.qqpimsecure_6.2.0_1107.apk", "appDownCount": 0, "appId": "5284", "appName": "腾讯手机管家-一键连免费WiFi", "averageRating": 0, "categoryId": 118, "categoryName": "安全", "channelId": "", "dataAnalysisId": "", "fileSize": "16640597", "iconUrl": "http://shp.qpic.cn/ma_icon/0/icon_5284_1458699947/96", "packageName": "com.tencent.qqpimsecure", "recommendId": "fgIAAYjIEAJGDDNKLTVZY1JFaktzIRVxiJiPwS9hNAujdbcy8YIJ2nwnFp9j/+g+QBt424i7DrSfr2fpP5ExI1gc96J75P+zbJNC7/gOgkTjTXgy6EnF7JXGImI1UDDhQAAAAAA", "shortDesc": "完全免费的手机安全与管理软件", "source": 5317, "versionCode": "1107", "versionName": "6.2.0" } ], "hasNext": true, "pageContext": "6", "ret": 0 }
必备协议:
type:6
request:{ "reserved": "" } response: { "appList": [ { "apkId": "", "apkUrl": "", "appId": "", "appName": "", "channelId": "", "dataAnalysisId": "", "fileSize": "", "iconUrl": "", "packageName": "", "recommendId": "", "shortDesc": "", "source": 0, "versionCode": "", "versionName": "", "categoryId": 0, "categoryName": "" }, { "apkId": "", "apkUrl": "", "appId": "", "appName": "", "channelId": "", "dataAnalysisId": "", "fileSize": "", "iconUrl": "", "packageName": "", "recommendId": "", "shortDesc": "", "source": 0, "versionCode": "", "versionName": "", "categoryId": 0, "categoryName": "" } ], "ret": 0, }
智能推荐-猜你喜欢
type:7
request: { "pageContext": "0", "pageSize": 20, "scenceId": 1 //内容内型, 0:all, -1:game, -2:software } response: { "appList": [ { "apkId": "", "apkUrl": "", "appId": "", "appName": "", "channelId": "", "dataAnalysisId": "", "fileSize": "", "iconUrl": "", "packageName": "", "recommendId": "", "shortDesc": "", "source": 0, "versionCode": "", "versionName": "", "categoryId": 0, "categoryName": "" }, { "apkId": "", "apkUrl": "", "appId": "", "appName": "", "channelId": "", "dataAnalysisId": "", "fileSize": "", "iconUrl": "", "packageName": "", "recommendId": "", "shortDesc": "", "source": 0, "versionCode": "", "versionName": "", "categoryId": 0, "categoryName": "" } ], "ret": 0, "pageContext":"", "hasNext":"1", }
智能推荐-one more app
type:8
request: { "pageContext": "0", "pageSize": 20, "scenceId": 1, //内容内型, 0:all, -1:game, -2:software "packageName": "com.xx.xx" } response: { "appList": [ { "apkId": "", "apkUrl": "", "appId": "", "appName": "", "channelId": "", "dataAnalysisId": "", "fileSize": "", "iconUrl": "", "packageName": "", "recommendId": "", "shortDesc": "", "source": 0, "versionCode": "", "versionName": "", "categoryId": 0, "categoryName": "" }, { "apkId": "", "apkUrl": "", "appId": "", "appName": "", "channelId": "", "dataAnalysisId": "", "fileSize": "", "iconUrl": "", "packageName": "", "recommendId": "", "shortDesc": "", "source": 0, "versionCode": "", "versionName": "", "categoryId": 0, "categoryName": "" } ], "ret": 0, "pageContext":"", "hasNext":"1", }
详细的分类列表协议(appList中包含详细的app信息)
type:9
第一次请求,请求第一页数据:
categoryName:填写对应的分类名称
pageContext:分页上下文,首次请求时无需填写,第二次请求下一页时,客户端只需用后台返回的pageContext值对请求中的pageContext字段赋值,原样带上来即可
pageSize:页大小
request: { "categoryKey": "10", "pageContext": "", "pageSize": 2 } ------------------------------------------------------------------------------ response: { "appList": [ { "apkId": "53064964", "apkMD5": "34AC9EA77C5EA85796593B620589AF20", "apkUrl": "http://dd.myapp.com/16891/34AC9EA77C5EA85796593B620589AF20.apk?fsname=com.pingan.pinganwifi_4.2.0_540.apk", "appId": "11713520", "appName": "平安WiFi", "averageRating": 3, "channelId": "000116083232343832373931", "dataAnalysisId": "", "description": "【随时随地免费上网】 免费连接港澳台、新马泰、日韩、欧美等热门旅游地区公共WiFi热点。", "editorIntro": "注册即送手机流量!", "fileSize": "10299288", "iconUrl": "http://shp.qpic.cn/ma_icon/0/icon_11713520_1462508874/96", "packageName": "com.pingan.pinganwifi", "recommendId": "BAIAAYjIEGNGDHJOMko2T2dIbWl0RFAMYAF3AAABfgYTMTA1ODGIatc=", "screenshots": [ "http://pp.myapp.com/ma_pic2/0/shot_11713520_1_1462508872/550", "http://pp.myapp.com/ma_pic2/0/shot_11713520_2_1462508872/550", "http://pp.myapp.com/ma_pic2/0/shot_11713520_3_1462508872/550", "http://pp.myapp.com/ma_pic2/0/shot_11713520_4_1462508872/550", "http://pp.myapp.com/ma_pic2/0/shot_11713520_5_1462508872/550" ], "source": 11713531, "totalDownloadTimes": "11959960", "versionCode": "540", "versionName": "4.2.0" }, { "apkId": "53016811", "apkMD5": "B332CABDD7EF793BEFCC4035ACFDA68F", "apkUrl": "http://dd.myapp.com/16891/B332CABDD7EF793BEFCC4035ACFDA68F.apk?fsname=com.tencent.qqpim_6.4.3_1260.apk", "appId": "8461", "appName": "QQ同步助手 刷机必备通讯录短信一键备份", "averageRating": 3, "channelId": "", "dataAnalysisId": "", "description": "【QQ同步助手,备份你的手机生活!】 换机必备神器,专业的手机数据传输、通讯录管理工具,4亿用户的信赖选择! 更安全:绑定手机,远离账号被盗,为您的账号安全保驾护航", "editorIntro": "4亿用户最爱的同步备份工具", "fileSize": "6289946", "iconUrl": "http://shp.qpic.cn/ma_icon/0/icon_8461_1461897331/96", "packageName": "com.tencent.qqpim", "recommendId": "fgIAAYjIEAJGDDNKLTU0Y05FakNzVlAMYAF3AAABmAYTMTA1MTMxMTQzNTAAALJXGImH1UDDiAAAAAAA", "screenshots": [ "http://pp.myapp.com/ma_pic2/0/shot_8461_1_1461897328/550", "http://pp.myapp.com/ma_pic2/0/shot_8461_2_1461897328/550", "http://pp.myapp.com/ma_pic2/0/shot_8461_3_1461897328/550", "http://pp.myapp.com/ma_pic2/0/shot_8461_4_1461897328/550", "http://pp.myapp.com/ma_pic2/0/shot_8461_5_1461897328/550" ], "source": 8494, "totalDownloadTimes": "152344544", "versionCode": "1260", "versionName": "6.4.3" } ], "hasNext": true, "pageContext": "2", "ret": 0, "tagInfo": "349900019,349900027,349900031,349900040,349900041,349900042,349900023,349900017,349900028," }
第二次调用,请求下一页数据:
request: { "categoryKey": "10", "pageContext": "2", "pageSize": 2 } ------------------------------------------------------------------------------ response: { "appList": [ { "apkId": "22464942", "apkUrl": "http://dd.myapp.com/16891/B9481E53F6A96BC4A7CB80523A5A8C15.apk?fsname=com.sankuai.meituan_6.4.1_341.apk", "appId": "11109", "appName": "美团-团购美食电影酒店优惠", "averageRating": 4, "channelId": "000116083230353835373637", "dataAnalysisId": "", "description": "12.21-12.30圣诞新用户1分钱嗨吃,老用户每日10点开抢! 新老用户优惠买单随机立减,最高立减50元!更有双重优惠等你来! 12.31-1.3元旦每分钟免一单,快来围观! "editorIntro": "1分钱嗨吃!", "fileSize": "17342976", "iconUrl": "http://pp.myapp.com/ma_icon/0/icon_11109_1452571906/96", "packageName": "com.sankuai.meituan", "recommendId": "BAIAAYjIEAJGDGF2dlVkZHhIU210YlAMYAF3AAABUgYTMTAxNTAzNDIwMTY1NDM3NDQwMREAkCACNrgBQVh3SXBraG1UVFlldXpXT2NpdVdyblp6IVpJakExT0JKQ1JCMnhxV2ltS2FKR0MxbW5jMDM2Tk5aYmJOcFBXVGk5R1ghaHg3eEdNQ2RpR0NvcGFyaFctUGc2eFIyYXBmMUkzdUFkWkJhUTY5NDliZFJZZkYzOVRhaUREUjVqeWtxOHRoQU9TUy0tSXo4QlR0ZXgwTDc5UHdMM1hWNUdDMDFKMlBJdWxnODQtUERQYjFjamMtYkEtRjgCAAGJBREB+SYMeUdPNUFOeEhTaXQzMgYDnjFJAAIKDBwsPED/XGYACwoMHCET9zxAAVxmAAtZDFADZgoxMDEzOTMzMjAzdD9cMW6BAKqRAKqkP4AAALQ7pcrdzNziAVT6jvkPDPYQDjEwLjIyNC4xMzcuMTcx8hFWlI+4o/dLx/z3S8f8", "screenshots": [ "http://pp.myapp.com/ma_pic2/0/shot_11109_1_1452571904/550", "http://pp.myapp.com/ma_pic2/0/shot_11109_2_1452571904/550", "http://pp.myapp.com/ma_pic2/0/shot_11109_3_1452571904/550", "http://pp.myapp.com/ma_pic2/0/shot_11109_4_1452571904/550" ], "source": 3, "totalDownloadTimes": "202034322", "versionCode": "341", "versionName": "6.4.1" }, { "apkId": "22400944", "apkUrl": "http://dd.myapp.com/16891/9F01007D1117A1BC22377CAD5973CA07.apk?fsname=cn.eclicks.wzsearch_5.7.1_116.apk", "appId": "1113958", "appName": "车轮查违章-违章查询", "averageRating": 4, "channelId": "", "dataAnalysisId": "AgIAAYjIEAJGDGF2dlVkZHhIU210YlEBLGACo/dLx/z3S8f8", "description": "违章查询-车轮查违章,和交管局车辆违章查询数据直接对接,官方接入,交通违章查询最快最准,全国使用人数最多覆盖城市最广的车主出行必备汽车违章查询app。同时也是滴滴出行、神州专车、Uber、嘀嗒拼车等专车司机必备查违章神器。 【小贴士】 有任何问题请通过app设置里的意见反馈发送给我们。我们会持续关注并解决这些问题,并一直以免费的形式为大家带来更完备的应用体验。也感谢全国违章查询、58违章查询、橙牛、微车的追随,让我们不断进步,给大家提供更好的服务。", "editorIntro": "全国最准的汽车违章查询软件", "fileSize": "9236986", "iconUrl": "http://pp.myapp.com/ma_icon/0/icon_1113958_1452155421/96", "packageName": "cn.eclicks.wzsearch", "recommendId": "", "screenshots": [ "http://pp.myapp.com/ma_pic2/0/shot_1113958_1_1452155419/550", "http://pp.myapp.com/ma_pic2/0/shot_1113958_2_1452155419/550", "http://pp.myapp.com/ma_pic2/0/shot_1113958_3_1452155419/550", "http://pp.myapp.com/ma_pic2/0/shot_1113958_4_1452155419/550", "http://pp.myapp.com/ma_pic2/0/shot_1113958_5_1452155419/550" ], "source": 3, "totalDownloadTimes": "102270734", "versionCode": "116", "versionName": "5.7.1" } ], "hasNext": true, "pageContext": "4", "ret": 0, "tagInfo": "249900014,149900001,249900067,249900066,249900048,149900089,149900076,249900007,249900073,249900068,249900071,149900028,149900083,249900006,149900075,249900072,149900079,149900031,149900010," }
4.4.2 洗包接口json协议
request: { "reqList": [ { "pkgName": "com.ganji.android" }, { "pkgName": "com.wuba" }, { "pkgName": "com.youloft.calendar" } ] }------------------------------------------------------------------------------ response: { "appList": { "com.ganji.android": { "apkId": "22619797", "apkUrl": "http://dd.myapp.com/16891/0C5B0C7EECFD8496085CCA8169062650.apk?fsname=com.ganji.android_7.2.0_410.apk", "appId": "7627", "appName": "赶集生活-招聘、兼职、租房、二手车", "categoryId": 107, "categoryName": "生活", "channelId": "", "dataAnalysisId": "", "fileSize": "18595125", "iconUrl": "http://pp.myapp.com/ma_icon/0/icon_7627_1453695897/96", "packageName": "com.ganji.android", "recommendId": "", "shortDesc": "免费生活服务软件,提供全国400多个城市服务信息,找工作,二手买卖,找房租房都能搞定。", "source": 6, "versionCode": "410", "versionName": "7.2.0" }, "com.wuba": { "apkId": "52487023", "apkUrl": "http://dd.myapp.com/16891/5DFB55CD9B81999823364A1CD0CCE97F.apk?fsname=com.wuba_6.6.1.1_6611.apk", "appId": "6512", "appName": "58同城 -租房招聘兼职二手车", "categoryId": 107, "categoryName": "生活", "channelId": "", "dataAnalysisId": "", "fileSize": "25040290", "iconUrl": "http://pp.myapp.com/ma_icon/0/icon_6512_1456901696/96", "packageName": "com.wuba", "recommendId": "", "shortDesc": "我是小编推荐<font size=\"20\" color=#ff9900>背景</font>", "source": 6, "versionCode": "6611", "versionName": "6.6.1.1" }, "com.youloft.calendar": { "apkId": "22701864", "apkUrl": "http://dd.myapp.com/16891/A72B636D5DCF287D9AEB9C4EA08DB403.apk?fsname=com.youloft.calendar_4.4.2_81.apk", "appId": "5881", "appName": "51万年历", "categoryId": 107, "categoryName": "生活", "channelId": "000116083232353630373438", "dataAnalysisId": "", "fileSize": "10462999", "iconUrl": "http://pp.myapp.com/ma_icon/0/icon_5881_1454120489/96", "packageName": "com.youloft.calendar", "recommendId": "BAwcLEY3N0Z0dHE3alhXWm95ZEQyLTdqQldKZ1VtYDwz2EA4xMC4yMjUuMTY1LjIxMvIRVtmEE/wSiAyWAKw=", "shortDesc": "中国传统日历,农历,吉日查询", "source": 1, "versionCode": "81", "versionName": "4.4.2" } }, "ret": 0 }
4.4.3 榜单接口json协议
请求包体:
{ "categoryId": 0, "page": 0, "pageSize": 10, "sceneId": 0 }
字段说明
sceneId 0:综合榜,1:下载榜,2:飙升榜 categoryId 0:全部,-1:应用,-2:游戏 pageSize 页大小 page 当前页从0开始
返回包体:
{ "appList": [ { "apkId": "52674344", "apkUrl": "http://dd.myapp.com/16891/639B7A311E27F39BB10C35D154F70D7F.apk?fsname=com.tencent.qqpimsecure_6.2.0_1107.apk", "appDownCount": 0, "appId": "5284", "appName": "腾讯手机管家-一键连免费WiFi", "averageRating": 0, "categoryId": 0, "categoryName": "", "channelId": "", "dataAnalysisId": "", "fileSize": "16640597", "iconUrl": "http://shp.qpic.cn/ma_icon/0/icon_5284_1458699947/96", "packageName": "com.tencent.qqpimsecure", "recommendId": "", "shortDesc": "完全免费的手机安全与管理软件", "source": 1, "versionCode": "1107", "versionName": "6.2.0" }, { "apkId": "52688536", "apkUrl": "http://dd.myapp.com/16891/53AA66277E1AE17B81E112C861A10221.apk?fsname=com.tencent.news_4.9.4_494.apk", "appDownCount": 0, "appId": "5613", "appName": "腾讯新闻", "averageRating": 0, "categoryId": 0, "categoryName": "", "channelId": "", "dataAnalysisId": "", "fileSize": "20694550", "iconUrl": "http://shp.qpic.cn/ma_icon/0/icon_5613_1458717309/96", "packageName": "com.tencent.news", "recommendId": "", "shortDesc": "一手资讯 一秒掌握", "source": 1, "versionCode": "494", "versionName": "4.9.4" } ], "hasNext": 0, "ret": 0 }
4.4.4获取应用分类和聚合标签json协议
命令字: 12
请求包体:
{ "reqType": -1//-1软件,-2游戏 }
返回包体:
{ "categoryList": [ { "categoryId": -10, "categoryName": "腾讯软件", "description": "QQ、腾讯手机管家、腾讯新闻、QQ游戏", "iconUrl": "http://3gimg.qq.com/android_cms/category/ab70eaa3878af338b66975b594e8c8bd.png", "parentId": -1, "tagList": [] }, { "categoryId": 103, "categoryName": "视频", "description": "腾讯视频、优酷、爱奇艺、暴风影音", "iconUrl": "http://shp.qpic.cn/ma_icon/0/ad9ddf02f462aa10eef2733113909304/0", "parentId": -1, "tagList": [ { "id": 10301, "name": "电视" }, { "id": 10302, "name": "影像" }, { "id": 10303, "name": "播放器" }, { "id": 10304, "name": "视频资源" }, { "id": 10305, "name": "真人视频" }, { "id": 10306, "name": "直播" } ] } ], "ret": 0 }
4.4.5获取聚合标签下的应用列表json协议
命令字:13
请求包体:
{ "pageContext": "", "pageSize": 20, "tagId": 11602//上一条协议返回的聚合标签tagList里的id }
响应包体:
{ "appList": [ { "apkId": "52992536", "apkUrl": "http://dd.myapp.com/16891/15958435B41F7ED8C91695B0CC088FC0.apk?fsname=com.yx_4.4.2_4082.apk", "appDownCount": 0, "appId": "25365", "appName": "有信电话", "averageRating": 0, "categoryId": 0, "categoryName": "", "channelId": "", "dataAnalysisId": "", "fileSize": "18841790", "iconUrl": "http://shp.qpic.cn/ma_icon/0/icon_25365_1461672742/96", "packageName": "com.yx", "recommendId": "", "shortDesc": "有信电话,永久免费打;", "source": 2, "versionCode": "4082", "versionName": "4.4.2" }, { "apkId": "52895528", "apkUrl": "http://dd.myapp.com/16891/E1A76727C16E36F6222CA6A25E9F2296.apk?fsname=com.cootek.smartdialer_5.7.8.0_5780.apk", "appDownCount": 0, "appId": "11397", "appName": "触宝电话", "averageRating": 0, "categoryId": 0, "categoryName": "", "channelId": "", "dataAnalysisId": "", "fileSize": "13071078", "iconUrl": "http://shp.qpic.cn/ma_icon/0/icon_11397_1460647817/96", "packageName": "com.cootek.smartdialer", "recommendId": "", "shortDesc": "2亿人在用的防骚扰免费网络电话", "source": 2, "versionCode": "5780", "versionName": "5.7.8.0" } ], "hasNext": true, "pageContext": "20", "ret": 0 }
获取搜索联想接口
接口名:getSearchSuggest4API
命令字: 14
请求:
{ "keyword": "腾讯软件", //搜索关键字utf8格式 "type": 0 //0:全部;1:软件;2:游戏 }
返回:
{ //搜索关键词命中的app "appList": [ { "apkId": "52674344", "apkUrl": "http://dd.myapp.com/16891/639B7A311E27F39BB10C35D154F70D7F.apk?fsname=com.tencent.qqpimsecure_6.2.0_1107.apk", "appDownCount": 0, "appId": "5284", "appName": "腾讯手机管家-一键连免费WiFi", "averageRating": 0, "categoryId": 0, "categoryName": "", "channelId": "", "dataAnalysisId": "", "fileSize": "16640597", "iconUrl": "http://shp.qpic.cn/ma_icon/0/icon_5284_1458699947/96", "packageName": "com.tencent.qqpimsecure", "recommendId": "", "shortDesc": "完全免费的手机安全与管理软件", "source": 2, "versionCode": "1107", "versionName": "6.2.0" } ], //建议词列表 "keywords": [ "自选股(腾讯炒股票软件)" ], "ret": 0 }
获取搜索热词
接口名称:getSearchHotWords4API
命令字:15
请求:
{ "sceneId": 0 //场景,默认值0 }
返回:
{ "keywordVec": [ { "appName": "", "iconUrl": "", "keyword": "斗地主", "pkgName": "", "type": 0 }, { "appName": "唯品会", //包名,type=1时使用 "iconUrl": "http://pp.myapp.com/ma_icon/0/icon_8588_1462779424/256", //应用图标,type=1时使用 "keyword": "唯品会", //热词 "pkgName": "com.achievo.vipshop", //包名,type=1时使用 "type": 1 //0是热词,1是应用 }, { "appName": "", "iconUrl": "", "keyword": "WiFi", "pkgName": "", "type": 0 }, { "appName": "", "iconUrl": "", "keyword": "单机游戏", "pkgName": "", "type": 0 }, { "appName": "贝贝-母婴特卖", "iconUrl": "http://pp.myapp.com/ma_icon/0/icon_10598121_1461233805/256", "keyword": "贝贝-母婴特卖", "pkgName": "com.husor.beibei", "type": 1 }, { "appName": "", "iconUrl": "", "keyword": "我是歌手", "pkgName": "", "type": 0 }, { "appName": "", "iconUrl": "", "keyword": "我叫MT2", "pkgName": "", "type": 0 }, { "appName": "", "iconUrl": "", "keyword": "元旦跨年", "pkgName": "", "type": 0 }, { "appName": "", "iconUrl": "", "keyword": "天天", "pkgName": "", "type": 0 }, { "appName": "", "iconUrl": "", "keyword": "单机", "pkgName": "", "type": 0 }, { "appName": "大众点评", "iconUrl": "http://pp.myapp.com/ma_icon/0/icon_7960_1461661406/256", "keyword": "大众点评-1分钱吃喝玩乐", "pkgName": "com.dianping.v1", "type": 1 }, { "appName": "", "iconUrl": "", "keyword": "音乐", "pkgName": "", "type": 0 }, { "appName": "", "iconUrl": "", "keyword": "三国", "pkgName": "", "type": 0 }, { "appName": "", "iconUrl": "", "keyword": "雷霆战机", "pkgName": "", "type": 0 }, { "appName": "", "iconUrl": "", "keyword": "全民奇迹", "pkgName": "", "type": 0 }, { "appName": "", "iconUrl": "", "keyword": "桌面", "pkgName": "", "type": 0 }, { "appName": "腾讯手机管家-一键连免费WiFi", "iconUrl": "http://pp.myapp.com/ma_icon/0/icon_5284_1458699947/256", "keyword": "腾讯手机管家", "pkgName": "com.tencent.qqpimsecure", "type": 1 }, { "appName": "优酷视频播放器", "iconUrl": "http://pp.myapp.com/ma_icon/0/icon_10197_1461919818/256", "keyword": "优酷视频播放器", "pkgName": "com.youku.phone", "type": 1 }, { "appName": "", "iconUrl": "", "keyword": "主题", "pkgName": "", "type": 0 }, { "appName": "", "iconUrl": "", "keyword": "我的世界", "pkgName": "", "type": 0 }, { "appName": "天天炫斗", "iconUrl": "http://pp.myapp.com/ma_icon/0/icon_10451659_1461633714/256", "keyword": "天天炫斗", "pkgName": "com.tencent.game.VXDGame", "type": 1 }, { "appName": "微信", "iconUrl": "http://pp.myapp.com/ma_icon/0/icon_10910_1461047198/256", "keyword": "微信", "pkgName": "com.tencent.mm", "type": 1 }, { "appName": "", "iconUrl": "", "keyword": "西游", "pkgName": "", "type": 0 }, { "appName": "", "iconUrl": "", "keyword": "看视频", "pkgName": "", "type": 0 }, { "appName": "", "iconUrl": "", "keyword": "全民炫舞", "pkgName": "", "type": 0 }, { "appName": "", "iconUrl": "", "keyword": "NBA", "pkgName": "", "type": 0 }, { "appName": "", "iconUrl": "", "keyword": "爱奇艺", "pkgName": "", "type": 0 } ], "ret": 0 }
同作者应用
接口名称:getSameAuthorApp4API
命令字:16
请求:
{ "pageContext": "", //分页上下文 "pageSize": 20, //也大小,不能超过50 "pkgName": "com.gtgj.view", //要查询的同作者应用包名 "pkgNameList": [], //需要过滤的包名类别 "startIndex": -1 //分页起始页 }
返回:
{ //同作者应用 "appList": [ { "apkId": "53133181", "apkMD5": "D0B3C0C5D6081A14C603AA4097FDD39D", "apkUrl": "http://dd.myapp.com/16891/D0B3C0C5D6081A14C603AA4097FDD39D.apk?fsname=com.huoli.travel_2.0.1.1_202.apk", "appDownCount": 12654, "appId": "11793048", "appName": "伙力", "averageRating": 2, "categoryId": 107, "categoryName": "生活", "channelId": "", "dataAnalysisId": "", "fileSize": "7978157", "iconUrl": "http://shp.qpic.cn/ma_icon/0/icon_11793048_1463378361/96", "packageName": "com.huoli.travel", "recommendId": "", "shortDesc": "伙力-吃货的创意旅行!", "source": 11793081, "versionCode": "202", "versionName": "2.0.1.1" }, { "apkId": "52846714", "apkMD5": "A71704527084ED25361B9E052542FD44", "apkUrl": "http://dd.myapp.com/16891/A71704527084ED25361B9E052542FD44.apk?fsname=com.flightmanager.view_5.7_107.apk", "appDownCount": 79625970, "appId": "6789", "appName": "航班管家", "averageRating": 4, "categoryId": 108, "categoryName": "旅游", "channelId": "", "dataAnalysisId": "", "fileSize": "20533608", "iconUrl": "http://shp.qpic.cn/ma_icon/0/icon_6789_1460172853/96", "packageName": "com.flightmanager.view", "recommendId": "", "shortDesc": "航班延误提醒,值机选座", "source": 6822, "versionCode": "107", "versionName": "5.7" } ], //开发者信息 "authorInfo": { "author": "深圳市活力天汇科技有限公司", "curLevel": 0, //本月移动星级,0-普通开发者,0以上是星级开发者 "preLevel": 0, //上月移动星级,0-普通开发者,0以上是星级开发者 "score": 0, //积分 "type": 0 //开发者类型,1-企业;2-个人 }, "hasNext": 0, //是否有下一页,0:没有,1:头 "pageContext": "", //分页上下文,请求是原样待会 "ret": 0, //请求状态,0:正常,其他失败 "startIndex": 0 //分页起始页,原样带回 } getApplicationTag4API:(17)//通过包名获取应用标签 request: { "pkgName": "com.tencent.mobileqq" } ------------------------------------------------------------------------------ response: { "appTagList": [ { "tagId": "269900001", "tagName": "社交生活" }, { "tagId": "269900017", "tagName": "聊天" }, { "tagId": "269900039", "tagName": "个性空间" } ], "ret": 0 } ****************************************************************************************************************************************************** getAppTagAppList4API:(18)//通过应用标签获取到对应的应用列表 request: { "pageContext": "", "pageSize": 2, "tagId": "269900017" } ------------------------------------------------------------------------------ response: { "appList": [ { "apkId": "52956769", "apkMD5": "1452D707808BD56E0CA0DCD8D73EC081", "apkUrl": "http://dd.myapp.com/16891/1452D707808BD56E0CA0DCD8D73EC081.apk?fsname=cn.com.fetion_5.5.7_20160418.apk", "appDownCount": 27387071, "appId": "2725", "appName": "飞信", "averageRating": 3, "categoryId": 106, "categoryName": "社交", "channelId": "", "dataAnalysisId": "", "fileSize": "50024886", "iconUrl": "http://shp.qpic.cn/ma_icon/0/icon_2725_1461266552/96", "packageName": "cn.com.fetion", "recommendId": "fgIAAYjIEAJGDDNKLTVZY1JFaktzTlAMYAV3AAABmAYTrezabn8AF4LNaEnF7JXGImI1UDDhgAAAAAA", "shortDesc": "飞信是一款“综合通信服务”软件", "source": 2758, "versionCode": "20160418", "versionName": "5.5.7" }, { "apkId": "52926428", "apkMD5": "7FF97C6700D935B62E77CFC10BAFEA31", "apkUrl": "http://dd.myapp.com/16891/7FF97C6700D935B62E77CFC10BAFEA31.apk?fsname=com.tencent.mm_6.3.16.49r03ae324_780.apk", "appDownCount": 2360216401, "appId": "10910", "appName": "微信", "averageRating": 3, "categoryId": 106, "categoryName": "社交", "channelId": "", "dataAnalysisId": "", "fileSize": "36849312", "iconUrl": "http://shp.qpic.cn/ma_icon/0/icon_10910_1461047198/96", "packageName": "com.tencent.mm", "recommendId": "fgIAAYjIEAJGDDNKLTU0Y05FakNzVlAMYAN3AAABmAYTMTRqL25aOU4leE3es8qP3S+f8AAAAALJXGImH1UDDhwAAAAAA", "shortDesc": "自定义表情可以同步到新设备啦!", "source": 10943, "versionCode": "780", "versionName": "6.3.16.49_r03ae324" } ], "hasNext": true, "pageContext": "2", "ret": 0 }
第二页:
request: { "pageContext": "2", "pageSize": 2, "tagId": "269900017" } ------------------------------------------------------------------------------ response: { "appList": [ { "apkId": "53028729", "apkMD5": "718DB4D883FD13F4C796CDF36995C607", "apkUrl": "http://dd.myapp.com/16891/718DB4D883FD13F4C796CDF36995C607.apk?fsname=com.pinterest_5.14.0_51405.apk", "appDownCount": 263144, "appId": "243963", "appName": "Pinterest", "averageRating": 3, "categoryId": 106, "categoryName": "社交", "channelId": "", "dataAnalysisId": "", "fileSize": "30017484", "iconUrl": "http://shp.qpic.cn/ma_icon/0/icon_243963_1462097339/96", "packageName": "com.pinterest", "recommendId": "fgIAAYjIEAJGDDNKLTU0Y05FakNzVlAMYAV24/wS9hNAO41AZPRuSbLmZtOgJChm5AeE8EOO02eoqNtRBiZgbIAj7kck3IUdTiMW6P3S+f8AAAAALJXGImH1UDDhgAAAAAA", "shortDesc": "看看来自全世界的美图对于身心来说绝对是一大放松,如厕也许更省力,靠谱!", "source": 243996, "versionCode": "51405", "versionName": "5.14.0" }, { "apkId": "52829527", "apkMD5": "6A5CB89C0ED6A3A9C92F20EDA8AF26E0", "apkUrl": "http://dd.myapp.com/16891/6A5CB89C0ED6A3A9C92F20EDA8AF26E0.apk?fsname=com.qzone_6.3.1.289_90.apk", "appDownCount": 1211986583, "appId": "9959", "appName": "QQ空间", "averageRating": 3, "categoryId": 106, "categoryName": "社交", "channelId": "", "dataAnalysisId": "", "fileSize": "26271717", "iconUrl": "http://shp.qpic.cn/ma_icon/0/icon_9959_1460036593/96", "packageName": "com.qzone", "recommendId": "fgIAAYjIEAJGDDNKLTU0Y05FakNzVlAMYAF3AAABmAYTMTA1MTMxMTQzNyG6+pug26P3S+f8AAAAALJXGImH1UDDiAAAAAAA", "shortDesc": "QQ空间,分享生活,留住感动!", "source": 9992, "versionCode": "90", "versionName": "6.3.1.289" } ], "hasNext": true, "pageContext": "4", "ret": 0 }
4.5、注意事项
4.5.1 appkey和appsecret及so文件必须使用分配的,否则无法正常使用SDK
4.5.2 请使用申请时的包名和签名进行开发调试,否则无法正常使用SDK
4.5.3 每次向用户展示必须及时拉取数据,不可缓存
4.5.4 当任务开始下载以后,数据可以与下载任务一起缓存,下载开始,下载成功,安装开始,安装结束均可以使用缓存的数据进行上报。
4.5.5 initSDKWithDebugMode连接的是SDK的测试环境,数据为测试数据,只能用来联调验证,不可以发布上线。发布上线一定要使用initSDK接口,且不能打开printLog接口
其他错误码请及时反馈,联系人QQ:3077973301
5、SDK接入常见错误
5.1 、初始化失败,错误码-827
解决方案:检查AndroidManifest中的权限配置是否添加完整,并按照接入文档完整添加 产品形态:应用墙/积分墙/API SDK
5.2 、初始化InitSDK导致的crash:
解决方案:必须在Application里面调用initSDK初始化
产品形态:应用墙/积分墙/API SDK
5.3 、个别机型so无法加载导致crash:
解决方案:在工程的libs目录下,创建armeabi 和 armeabi-v7a目录,把接入的so在两个目录下都拷贝一份
产品形态:应用墙/积分墙/API SDK
5.4、初始化失败,错误码-841或者-1003
原因:某个应用申请的appKey和appSecret以及so文件,只能匹配该应用的签名和包名,有一项不对就会初始化失败
解决方案:
a.检查appKey,appSecret是否正确
b.检查安装包是否用申请时使用的签名文件进行了签名
c.检查在自助接入时填写的签名md5生成方法是否正确(正确的使用方法是先将一个正式发布的apk解压,然后取META-INF下的cert.ras文件用我们提供的sig.jar运行命令行获取)
d.使用的场景(应用墙/积分墙/API SDK)和申请的场景是否一致
e.如果检查以上各步仍然失败的话,可以把初始化函数initSDK替换为initSDKWithDebugMode,然后联系腾讯开发人员帮忙定位问题
产品形态:应用墙/积分墙/API SDK
5.5、后台发放时userid为null的问题
解决方案:
a.检查userid是否正确传入
b.首次初始化的时候如果获取不到userid,建议将userid用文件缓存起来,首次传入缓存的userid,在正确获取到后再调用初始化函数传入
产品形态:积分墙
6、数据说明
6.1 、数据报表更新时间?
当天的数据第二天早上10点更新显示
6.2 、后台部分数据为0的情况?
可能是由于数据延迟的原因,请耐心等待;如较长时间仍未看到数据,请及时反馈。联系人QQ:3077973301
6.3、为什么昨天的数据第二天早上10点之后还未显示更新?
可能是由于数据延迟的原因,请耐心等待;如较长时间仍未看到数据,请及时反馈。
6.4、游戏如何分成?
联运游戏占比30%,精品、单击游戏不分成。
6.5、如何查看后台收入数据?
当接入方应用经过各环节测试成功且切换正式环境上线后,用open帐号登陆流量联盟官网(http://union.open.qq.com), 点击进入流量联盟管理中心——>数据查看——>收入数据。
6.6、为什么月底清算的收入数据与报表上累计的收入数据不一致?
每月月底会对合作方当月分发数据进行系统稽核和清算,会将误点击下载、刷量下载等无效下载量刨除,相对应的收入数据会有一定的波动,导致了月底清算的收入数据与报表上累计的收入数据不一致,如有这种状况以月底清算数据为准。
7、财务发票
7.1、何时收到上月结账单?
流量联盟每月3日至10日进行上月合作方收入数据的统计审核,审核完毕后会以邮件的形式将结账单通知到合作方,如果在期限内未收到邮件请及时反馈。
7.2、提现流程及充值广告金流程
合作方收到结账单后,需在12日~15日期间邮件回复确认进行提现或转充应用宝广告金。若转充应用宝广告金,则需要联系应用宝商业化团队接口人进行广告投放沟通。若进行提现,需要打印月结单并盖章,开增值税专用发票,统一寄送给流量联盟接口人。接口人收到发票后会邮件确认已收到发票,并启动付款流程。统一联系人QQ:3077973301
7.3、付款需要多长时间?
从收到发票之日起开始,预计二十日之内完成打款。
以上信息是否解决您的问题?