此SDK已停止维护,请开发者对接 RestApi V2
个推使用clientid来标识每个独立的用户,但clientid不等于开发者应用上的用户名,如果希望将消息发给应用上指定用户名的用户,则需要将用户名指定一个用户别名。
为一个或者一批clientid用户定义一个用户别名,通过这个用户别名对一个或一批用户进行推送。目前一个别名最多允许绑定10个clientid。
别名规则说明:
一个clientid只能绑定一个别名,若已绑定过别名的clientid再次绑定新别名,则认为与前一个别名自动解绑,绑定新别名。
bindAlias(const char *appKey, const char* appId, const char* alias, const char* cid)
参数名 | 类型 | 必需 | 默认值 | 参数描述 |
---|---|---|---|---|
appKey | char* | 是 | 无 | 调用pushInit时APP对应的appKey |
appId | char* | 是 | 无 | 用户所属应用id |
alias | char* | 是 | 无 | 用户别名 |
cid | char* | 是 | 无 | 用户id |
#include "IGtPush.h"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <string>
#ifdef WIN32
#include <windows.h>
#endif
using namespace std;
static void printResult(IPushResult &result);
//单个别名绑定
void bindAliastest();
// http的域名
//static char *host ="http://api.getui.com/apiex.htm";
//https的域名
static char *host ="https://api.getui.com/apiex.htm";
//采用"C++ SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置
static char *appId = ""; //您应用的id
static char *appKey = ""; //您的appkey
static char *masterSecret = ""; //您的masterSercret
static char *cid = ""; //用户的id
int main(){
// 注意:接口传入字符必须为UTF-8编码,因ASCII字符UTF-8编码后与原先一样,所以可以不编码,但中文等非ASCII字符必须编码
// 如果返回的类似错误"post http data failed, code=6",错误码可百度CURL返回的错误码是什么意思,如http://www.cnblogs.com/wainiwann/p/3492939.html
//程序运行前初始化一遍即可,如果已初始化过,直接注释即可,"编码"两个字为固定写法,不需要做转换
Result r = pushInit(host, appKey, masterSecret, "编码");
if(r!=SUCCESS){
printf("pushInit for app failed: ret=%d\n", r);
return -1;
}
bindAliastest();
//bindAliasListtest();
//queryAliastest();
//queryClientIdtest();
//unBindAliastest();
//unBindAliasAlltest();
return 0;
}
void bindAliastest(){
IPushResult result = bindAlias(appKey, appId, "test", cid);
printResult(result);
}
static void printResult(IPushResult &result) {
cout << "print result:-------------" << endl;
for (int i = 0; i < result.size; i++) {
cout << result.entry[i].key << ": " << result.entry[i].value << endl;
}
cout << "print end:----------------" << endl;
}
允许将多个clientid和一个别名绑定,如用户使用多终端,则可将多终端对应的clientid绑定为一个别名,目前一个别名最多支持绑定10个clientid。
bindAliasList(const char *appKey, const char* appId, Target *target, int num)
参数名 | 类型 | 必需 | 默认值 | 参数描述 |
---|---|---|---|---|
appKey | char* | 是 | 无 | 调用pushInit时APP对应的appKey |
appId | char* | 是 | 无 | 用户所属应用id |
target | Target* | 是 | 无 | 别名与cid对应列表 |
num | int | 是 | 无 | target列表大小 |
void bindAliasListtest(){
Target* targetList = new Target[1];
targetList->clientId = cid;
targetList->alias = "test";
IPushResult result = bindAliasList(appKey, appId, targetList, 1);
printResult(result);
delete []targetList;
}
// 注:只要有一个cid绑定成功,返回结果就为true
完整代码请参考第一个示例bindAlias
queryClientId(const char *appKey, const char* appId, const char *alias, char** list)
参数名 | 类型 | 必需 | 默认值 | 参数描述 |
---|---|---|---|---|
appKey | char* | 是 | 无 | 调用pushInit时APP对应的appKey |
appId | char* | 是 | 无 | 用户所属应用id |
alias | char* | 是 | 无 | 用户别名 |
list | char** | 是 | 无 | 获得别名绑定的cid列表 |
void queryClientIdtest() {
char* list = NULL;
IPushResult result = queryClientId(appKey, appId, "test", &list);
printResult(result);
if(list != NULL) {
cout << "cidlist:" << list<<endl;
//释放资源
releaseMem(list);
}
}
完整代码请参考第一个示例bindAlias
queryAlias(const char *appKey,const char *appId, const char *cid)
参数名 | 类型 | 必需 | 默认值 | 参数描述 |
---|---|---|---|---|
appKey | char* | 是 | 无 | 调用pushInit时APP对应的appKey |
appId | char* | 是 | 无 | 用户所属应用id |
cid | char* | 是 | 无 | 用户id |
void queryAliastest(){
IPushResult result = queryAlias(appKey, appId, cid);
printResult(result);
}
完整代码请参考第一个示例bindAlias
unBindAlias(const char *appKey,const char *appId, const char *alias, const char* cid)
参数名 | 类型 | 必需 | 默认值 | 参数描述 |
---|---|---|---|---|
appKey | char* | 是 | 无 | 调用pushInit时APP对应的appKey |
appId | char* | 是 | 无 | 用户所属应用id |
alias | char* | 是 | 无 | 用户别名 |
cid | char* | 是 | 无 | 用户id |
void unBindAliastest() {
IPushResult result = unBindAlias(appKey, appId, "test", cid);
printResult(result);
}
完整代码请参考第一个示例bindAlias
unBindAliasAll(const char *appKey,const char *appId, const char *alias)
参数名 | 类型 | 必需 | 默认值 | 参数描述 |
---|---|---|---|---|
appKey | char* | 是 | 无 | 调用pushInit时APP对应的appKey |
appId | char* | 是 | 无 | 用户所属应用id |
alias | char* | 是 | 无 | 用户别名 |
void unBindAliasAlltest() {
IPushResult result = unBindAliasAll(appKey, appId, "test");
printResult(result);
}
完整代码请参考第一个示例bindAlias
### 2.2 参数描述
| 参数 | 说明 |
|--------|------------------|
| appKey |用于鉴定身份是否合法|
| taskId |平台返回用来标识任务(格式OSL-MMdd_XXXXXX) |
### 2.3 stop代码实例
```C++
#include "IGtPush.h"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <string>
#ifdef WIN32
#include <windows.h>
#endif
using namespace std;
void stopTaskTest();
// http的域名
//static char *host ="http://api.getui.com/apiex.htm";
//https的域名
static char *host ="https://api.getui.com/apiex.htm";
//采用"C++ SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置
static char *appKey = ""; //您的appkey
static char *masterSecret = ""; //您的masterSecret
int main(){
// 注意:接口传入字符必须为UTF-8编码,因ASCII字符UTF-8编码后与原先一样,所以可以不编码,但中文等非ASCII字符必须编码
// 如果返回的类似错误"post http data failed, code=6",错误码可百度CURL返回的错误码是什么意思,如http://www.cnblogs.com/wainiwann/p/3492939.html
//程序运行前初始化一遍即可,如果已初始化过,直接注释即可,"编码"两个字为固定写法,不需要做转换
Result r = pushInit(host, appKey, masterSecret, "编码");
if(r!=SUCCESS){
printf("pushInit for app failed: ret=%d\n", r);
return -1;
}
stopTaskTest();
return 0;
}
void stopTaskTest() {
Result result = pushStop(appKey,"OSA-1126_lsJPsulDip7Pcd5JqWgUe8");
printf("%d\n", result);
}
getPushResult(const char *appKey, const char* taskId)
参数 | 参数说明 |
---|---|
Appkey | 用于鉴定身份是否合法 |
taskId | 任务唯一识别号(格式OSL-MMdd_XXXXXX) |
回执 | 参数说明 |
---|---|
{“taskeId”:”OSA-0820_uQ7gevLuGS7Odz8FS2ZSB9”,”result”:”ok”,”msgTotal”:59,”msgProcess”:0} | |
tasked:任务ID msgTotal:表示有效可下发总数 result:OK执行成功 result:sign_error 表示校验失败 msgProcess:收到消息回执总数 |
#include "IGtPush.h"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <string>
#ifdef WIN32
#include <windows.h>
#endif
using namespace std;
static void printResult(IPushResult &result);
void getresult();
// http的域名
//static char *host ="http://api.getui.com/apiex.htm";
//https的域名
static char *host ="https://api.getui.com/apiex.htm";
//采用"C++ SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置
static char *appKey = ""; //您的appkey
static char *masterSecret = ""; //您的masterSecret
int main(){
// 注意:接口传入字符必须为UTF-8编码,因ASCII字符UTF-8编码后与原先一样,所以可以不编码,但中文等非ASCII字符必须编码
// 如果返回的类似错误"post http data failed, code=6",错误码可百度CURL返回的错误码是什么意思,如http://www.cnblogs.com/wainiwann/p/3492939.html
//程序运行前初始化一遍即可,如果已初始化过,直接注释即可,"编码"两个字为固定写法,不需要做转换
Result r = pushInit(host, appKey, masterSecret, "编码");
if(r!=SUCCESS){
printf("pushInit for app failed: ret=%d\n", r);
return -1;
}
getresult();
return 0;
}
void getresult(){
IPushResult result = {0};
result = getPushResult(appKey,"OSA-1126_3iZaaoJ5TQ7Q6gOEQmVfe1");
printResult(result);
}
static void printResult(IPushResult &result) {
cout << "print result:-------------" << endl;
for (int i = 0; i < result.size; i++) {
cout << result.entry[i].key << ": " << result.entry[i].value << endl;
}
cout << "print end:----------------" << endl;
}
调用此接口可以获取某个应用单日的用户数据(用户数据包括:新增用户数,累计注册用户总数,在线峰值,日联网用户数)(目前只支持查询1天前的数据)
queryAppUserDataByDate(const char *appKey, const char* appId, const char* date)
字段 | 说明 |
---|---|
appKey | 用于鉴定身份是否合法 |
appId | 应用ID |
date | 查询的日期(格式:yyyyMMdd) |
字段 | 上级 | 含义 |
---|---|---|
result | - | 成功:ok |
data | - | 查询数据对象 |
appId | data | 请求的AppId |
date | data | 查询的日期(格式:yyyyMMdd) |
newRegistCount | data | 新注册用户数 |
registTotalCount | data | 新注册用户数 |
activeCount | data | 活跃用户数 |
onlineCount | data | 在线用户数 |
#include "IGtPush.h"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <string>
#ifdef WIN32
#include <windows.h>
#endif
using namespace std;
static void printQueryResult(IQueryResult &result);
void getuserinfo();
// http的域名
//static char *host ="http://api.getui.com/apiex.htm";
//https的域名
static char *host ="https://api.getui.com/apiex.htm";
//采用"C++ SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置
static char *appId = ""; //您应用的id
static char *appKey = ""; //您的appkey
static char *masterSecret = ""; //您的masterSecret
int main(){
// 注意:接口传入字符必须为UTF-8编码,因ASCII字符UTF-8编码后与原先一样,所以可以不编码,但中文等非ASCII字符必须编码
// 如果返回的类似错误"post http data failed, code=6",错误码可百度CURL返回的错误码是什么意思,如http://www.cnblogs.com/wainiwann/p/3492939.html
//程序运行前初始化一遍即可,如果已初始化过,直接注释即可,"编码"两个字为固定写法,不需要做转换
Result r = pushInit(host, appKey, masterSecret, "编码");
if(r!=SUCCESS){
printf("pushInit for app failed: ret=%d\n", r);
return -1;
}
getuserinfo();
return 0;
}
void getuserinfo(){
//初始化
IQueryResult result = {0};
result = queryAppUserDataByDate(appKey,appId,"20150709");
printQueryResult(result);
}
static void printQueryResult(IQueryResult &result) {
cout << "print result:-------------" << endl;
cout <<"result:"<<result.result<<endl;
for (int i = 0; i < result.size; i++) {
cout << result.data[i].key << ": " << result.data[i].value << endl;
}
cout << "print end:----------------" << endl;
}
调用此接口可以获取某个应用单日的推送数据(推送数据包括:发送总数,在线发送数,接收数,展示数,点击数)(目前只支持查询1天前的数据)
queryAppPushDataByDate(const char *appKey, const char* appId, const char* date)
字段 | 说明 |
---|---|
appKey | 用于鉴定身份是否合法 |
appId | 应用ID |
date | 查询的日期(格式:yyyyMMdd) |
字段 | 上级 | 含义 |
---|---|---|
result | - | 成功:ok |
data | - | 查询数据对象 |
appId | data | 请求的AppId |
date | data | 查询的日期(格式:yyyyMMdd) |
sendCount | data | 发送总数 |
sendOnlineCount | data | 在线发送数 |
receiveCount | data | 接收数 |
showCount | data | 展示数 |
clickCount | data | 点击数 |
#include "IGtPush.h"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <string>
#ifdef WIN32
#include <windows.h>
#endif
using namespace std;
static void printQueryResult(IQueryResult &result);
void getappinfo();
// http的域名
//static char *host ="http://api.getui.com/apiex.htm";
//https的域名
static char *host ="https://api.getui.com/apiex.htm";
//采用"C++ SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置
static char *appId = ""; //您应用的id
static char *appKey = ""; //您的appkey
int main(){
// 注意:接口传入字符必须为UTF-8编码,因ASCII字符UTF-8编码后与原先一样,所以可以不编码,但中文等非ASCII字符必须编码
// 如果返回的类似错误"post http data failed, code=6",错误码可百度CURL返回的错误码是什么意思,如http://www.cnblogs.com/wainiwann/p/3492939.html
//程序运行前初始化一遍即可,如果已初始化过,直接注释即可,"编码"两个字为固定写法,不需要做转换
Result r = pushInit(host, appKey, masterSecret, "编码");
if(r!=SUCCESS){
printf("pushInit for app failed: ret=%d\n", r);
return -1;
}
getappinfo();
return 0;
}
void getappinfo(){
IQueryResult result = {0};
result = queryAppPushDataByDate(appKey,appId,"20150709");
printQueryResult(result);
}
static void printQueryResult(IQueryResult &result) {
cout << "print result:-------------" << endl;
cout <<"result:"<<result.result<<endl;
for (int i = 0; i < result.size; i++) {
cout << result.data[i].key << ": " << result.data[i].value << endl;
}
cout << "print end:----------------" << endl;
}
以上文档对您是否有帮助?