其他接口

其他接口

1. 别名接口

该接口下的代码示例全为同一个类里

1.1 别名说明

个推使用clientid来标识每个独立的用户,但clientid不等于开发者应用上的用户名,如果希望将消息发给应用上指定用户名的用户,则需要将用户名指定一个用户别名。

为一个或者一批clientid用户定义一个用户别名,通过这个用户别名对一个或一批用户进行推送。目前一个别名最多允许绑定10个clientid。

别名规则说明:

  1. 有效的别名组成:字母(区分大小写)、数字、下划线、汉字
  2. 任务备注名长度限制为 40 字节。( UTF-8 )
  3. 一个别名最多允许绑定10个clientid。

1.2 对应接口

1.2.1 bindAlias-单个clientid绑定别名

一个clientid只能绑定一个别名,若已绑定过别名的clientid再次绑定新别名,则认为与前一个别名自动解绑,绑定新别名。

函数说明:

bindAlias(APPID, ALIAS, clientid)

参数说明:
参数名 类型 必需 默认值 参数描述
APPID String 用户所属应用id
ALIAS String 用户别名
clientid String 用户id
代码实例
using System;
using System.Linq;
using System.Text;
using Google.ProtocolBuffers;
using com.gexin.rp.sdk.dto;
using com.igetui.api.openservice;
using com.igetui.api.openservice.igetui;
using com.igetui.api.openservice.igetui.template;
using com.igetui.api.openservice.payload;
using System.Net;

namespace GetuiServerApiSDKDemo
{
    public class demo
    {
        //参数设置 <-----参数需要重新设置----->
        //http的域名
        private static String HOST = "http://sdk.open.api.igexin.com/apiex.htm";

        //https的域名
        //private static String HOST = "https://api.getui.com/apiex.htm";
        //采用"C# SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置
        private static String APPID = "";                     
        private static String APPKEY = "";                    
        private static String MASTERSECRET = "";              
        private static String CLIENTID = "";                  //您获取的clientid
          private static String ALIAS = "请输入别名";

        static void Main(string[] args)
        {

            bindAlias();
        }
        public static void bindAlias() 
        {
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
            String ret = push.bindAlias(APPID, ALIAS, CLIENTID);
            System.Console.WriteLine(ret);
            }

  }
}

1.2.2 bindAlias-多个clientid绑定别名

允许将多个clientid和一个别名绑定,如用户使用多终端,则可将多终端对应的clientid绑定为一个别名,目前一个别名最多支持绑定10个clientid。

函数说明:
bindAlias(appid, Lcids)
参数说明:
参数名 类型 必需 默认值 参数描述
appid String 用户所属应用id
Lcids List 别名绑定用户列表
代码实例
using System;
using System.Linq;
using System.Text;
using Google.ProtocolBuffers;
using com.gexin.rp.sdk.dto;
using com.igetui.api.openservice;
using com.igetui.api.openservice.igetui;
using com.igetui.api.openservice.igetui.template;
using com.igetui.api.openservice.payload;
using System.Net;
using System.Collections.Generic;

namespace GetuiServerApiSDKDemo
{
    public class demo
    {
        //参数设置 <-----参数需要重新设置----->
        //http的域名
        private static String HOST = "http://sdk.open.api.igexin.com/apiex.htm";

        //https的域名
        //private static String HOST = "https://api.getui.com/apiex.htm";

        //采用"C# SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置
        private static String APPID = "";                     
        private static String APPKEY = "";                    
        private static String MASTERSECRET = "";              
        private static String CLIENTID = "";                  //您获取的clientid
        private static String CLIENTID1 = "";
          private static String ALIAS = "请输入别名";
        private static String ALIAS1 = "别名1";

        static void Main(string[] args)
        {

            bindAliasAll();
        }
        public static void bindAliasAll()
        {
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
            List<com.igetui.api.openservice.igetui.Target> Lcids = new List<com.igetui.api.openservice.igetui.Target>();
            com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
            target.clientId = CLIENTID;
            target.alias = ALIAS;

            com.igetui.api.openservice.igetui.Target target1 = new com.igetui.api.openservice.igetui.Target();
            target1.clientId = "7c6edf411568c5db12e565425e4a381633";
            target1.alias = ALIAS1;


            Lcids.Add(target);
            Lcids.Add(target1);

            String ret = push.bindAlias(APPID, Lcids);
            System.Console.WriteLine(ret);
        }
  }
}
//注:只要有一个cid绑定成功,返回结果就为true<

1.2.3 queryClientId-根据别名获取clientid信息

函数说明:
queryClientId (appId, Alias)
参数说明:
参数名 类型 必需 默认值 参数描述
appid String 用户所属应用id
Alias String 用户别名
代码实例
using System;
using System.Linq;
using System.Text;
using Google.ProtocolBuffers;
using com.gexin.rp.sdk.dto;
using com.igetui.api.openservice;
using com.igetui.api.openservice.igetui;
using com.igetui.api.openservice.igetui.template;
using com.igetui.api.openservice.payload;
using System.Net;

namespace GetuiServerApiSDKDemo
{
    public class demo
    {
        //参数设置 <-----参数需要重新设置----->
        //http的域名
        private static String HOST = "http://sdk.open.api.igexin.com/apiex.htm";

        //https的域名
        //private static String HOST = "https://api.getui.com/apiex.htm";
        //采用"C# SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置
        private static String APPID = "";                     
        private static String APPKEY = "";                    
        private static String MASTERSECRET = "";              
        private static String CLIENTID = "";                  //您获取的clientID
          private static String ALIAS = "请输入别名";

        static void Main(string[] args)
        {

            queryClientId();
        }
        public static void queryClientId()
        {
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
            String ret = push.queryClientId(APPID, ALIAS);
            System.Console.WriteLine(ret);
        }

  }
}

1.2.4 queryAlias-通过clientid获取别名信息

函数说明:
queryAlias (appId, cid)
参数说明:
参数名 类型 必需 默认值 参数描述
appid String 用户所属应用id
cid String 用户id
代码实例
using System;
using System.Linq;
using System.Text;
using Google.ProtocolBuffers;
using com.gexin.rp.sdk.dto;
using com.igetui.api.openservice;
using com.igetui.api.openservice.igetui;
using com.igetui.api.openservice.igetui.template;
using com.igetui.api.openservice.payload;
using System.Net;

namespace GetuiServerApiSDKDemo
{
    public class demo
    {
        //参数设置 <-----参数需要重新设置----->
        //http的域名
        private static String HOST = "http://sdk.open.api.igexin.com/apiex.htm";

        //https的域名
        //private static String HOST = "https://api.getui.com/apiex.htm";
        //采用"C# SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置
        private static String APPID = "";                     
        private static String APPKEY = "";                    
        private static String MASTERSECRET = "";              
        private static String CLIENTID = "";                  //您获取的clientID
          private static String ALIAS = "请输入别名";

        static void Main(string[] args)
        {

            queryAlias();
        }
        public static void queryAlias()
        {
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
            String ret = push.queryAlias(APPID, CLIENTID);
            System.Console.WriteLine(ret);
        }

  }
}

1.2.5 unBindAlias-单个clientid和别名解绑

函数说明:
unBindAlias (appId, Alias, cid)
参数说明:
参数名 类型 必需 默认值 参数描述
appid String 用户所属应用id
cid String 用户id
Alias String 用户别名
代码实例
using System;
using System.Linq;
using System.Text;
using Google.ProtocolBuffers;
using com.gexin.rp.sdk.dto;
using com.igetui.api.openservice;
using com.igetui.api.openservice.igetui;
using com.igetui.api.openservice.igetui.template;
using com.igetui.api.openservice.payload;
using System.Net;

namespace GetuiServerApiSDKDemo
{
    public class demo
    {
        //参数设置 <-----参数需要重新设置----->
        //http的域名
        private static String HOST = "http://sdk.open.api.igexin.com/apiex.htm";

        //https的域名
        //private static String HOST = "https://api.getui.com/apiex.htm";

        //采用"C# SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置
        private static String APPID = "";                     
        private static String APPKEY = "";                    
        private static String MASTERSECRET = "";              
        private static String CLIENTID = "";                  //您获取的clientID
          private static String ALIAS = "请输入别名";

        static void Main(string[] args)
        {

            aliasUnBind();
        }
        public static void aliasUnBind()
        {
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
            String ret = push.unBindAlias(APPID, ALIAS, CLIENTID);
            System.Console.WriteLine(ret);
        }

  }
}

1.2.6 unBindAliasAll-绑定别名的所有clientid解绑

函数说明:
 unBindAliasAll(appId, Alias)
参数说明
参数名 类型 必需 默认值 参数描述
appid String 用户所属应用id
Alias String 用户别名
代码实例:
using System;
using System.Linq;
using System.Text;
using Google.ProtocolBuffers;
using com.gexin.rp.sdk.dto;
using com.igetui.api.openservice;
using com.igetui.api.openservice.igetui;
using com.igetui.api.openservice.igetui.template;
using com.igetui.api.openservice.payload;
using System.Net;

namespace GetuiServerApiSDKDemo
{
    public class demo
    {
        //参数设置 <-----参数需要重新设置----->
        //http的域名
        private static String HOST = "http://sdk.open.api.igexin.com/apiex.htm";

        //https的域名
        //private static String HOST = "https://api.getui.com/apiex.htm";

        //采用"C# SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置
        private static String APPID = "";                     
        private static String APPKEY = "";                    
        private static String MASTERSECRET = "";              
        private static String CLIENTID = "";                  //您获取的clientid
          private static String ALIAS = "请输入别名";

        static void Main(string[] args)
        {

           aliasUnBindAll();
        }
        public static void aliasUnBindAll()
        {
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
            String ret = push.unBindAliasAll(APPID, ALIAS);
            System.Console.WriteLine(ret);
        }

  }
}

2. 标签接口

2.1 标签说明

tag即为用户标签,个推提供了服务端和客户端接口,允许app针对每个clientid设置标签。用户的喜好、习惯、性别、年龄段等信息,这些信息均可以做为用户分组的标签。

通过标签(tag)方式实现用户分组,将消息发给指定标签用户,更进一步筛选了用户,实现精细化运营。

2.2 对应接口

2.2.1 setClientTag-通过cid设置用户标签(可设置多个)

接口名称:setClientTag(APPID, clientid, list)
参数:
参数名 类型 必需 默认值 参数描述
APPID String 用户所属应用id
clientid String 用户唯一识别id
list List 用户标签

注:此接口有频次控制,tag的长度、个数、总长度也有限制,申请修改请联系邮箱:kegf@getui.com 。

代码实例
using System;
using System.Linq;
using System.Text;
using Google.ProtocolBuffers;
using com.gexin.rp.sdk.dto;
using com.igetui.api.openservice;
using com.igetui.api.openservice.igetui;
using com.igetui.api.openservice.igetui.template;
using com.igetui.api.openservice.payload;
using System.Net;
using System.Collections.Generic;

namespace GetuiServerApiSDKDemo
{
    public class demo
    {
        //参数设置 <-----参数需要重新设置----->
        //http的域名
        private static String HOST = "http://sdk.open.api.igexin.com/apiex.htm";

        //https的域名
        //private static String HOST = "https://api.getui.com/apiex.htm";

        //采用"C# SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置
        private static String APPID = "";                     
        private static String APPKEY = "";                    
        private static String MASTERSECRET = "";              
        private static String CLIENTID = "";                  //您获取的clientID

        static void Main(string[] args)
        {

               setTag();
        }
        public static void setTag() {
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);

            List<String>  list=new List<String>();
            list.Add("");
            String ret =push.setClientTag(APPID, CLIENTID, list);
            System.Console.WriteLine(ret);
        }
  }
}

2.2.2 getUserTags-通过cid获取用户标签

接口名称:getUserTags(APPID, clientid)
参数:
参数名 类型 必需 默认值 参数描述
APPID String 用户所属应用id
clientid String 用户唯一识别id
代码实例
using System;
using System.Linq;
using System.Text;
using Google.ProtocolBuffers;
using com.gexin.rp.sdk.dto;
using com.igetui.api.openservice;
using com.igetui.api.openservice.igetui;
using com.igetui.api.openservice.igetui.template;
using com.igetui.api.openservice.payload;
using System.Net;

namespace GetuiServerApiSDKDemo
{
    public class demo
    {
        //参数设置 <-----参数需要重新设置----->
        //http的域名
        private static String HOST = "http://sdk.open.api.igexin.com/apiex.htm";

        //https的域名
        //private static String HOST = "https://api.getui.com/apiex.htm";

        //采用"C# SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置
        private static String APPID = "";                     
        private static String APPKEY = "";                    
        private static String MASTERSECRET = "";              
        private static String CLIENTID = "";                  //您获取的clientID

        static void Main(string[] args)
        {

               getUserTags();
        }
        public static void getUserTags() {
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
            String ret = push.getUserTags(APPID,CLIENTID);
            System.Console.WriteLine(ret);
        }
  }
}

3. 停止任务接口

3.1 描述

stop-对正处于推送状态,或者未接收的消息停止下发(list或app任务)

3.2 接口名称:


### 3.3 参数

 | 参数 | 类型   | 说明                          |
|--------|--------|------------------------------|
| taskId     | String |任务ID(格式OSL-yyMM_XXXXXX)|

### 3.4 stop代码实例

using System;
using System.Linq;
using System.Text;
using Google.ProtocolBuffers;
using com.gexin.rp.sdk.dto;
using com.igetui.api.openservice;
using com.igetui.api.openservice.igetui;
using com.igetui.api.openservice.igetui.template;
using com.igetui.api.openservice.payload;
using System.Net;

namespace GetuiServerApiSDKDemo
{
public class demo
{
//参数设置 <-----参数需要重新设置----->
//http的域名
private static String HOST = "http://sdk.open.api.igexin.com/apiex.htm";

    //https的域名
    //private static String HOST = "https://api.getui.com/apiex.htm";

    //采用"C# SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置                
    private static String APPKEY = "";                    
    private static String MASTERSECRET = "";              

    static void Main(string[] args)
    {

        taskStop();
    }
public static void taskStop()
{
    IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
    Boolean result = push.stop("OSA-0226_uuGr1x4Yp26TtLqnFq1984");
       System.Console.WriteLine("-----------------------------------------------");
    System.Console.WriteLine(result);
}

}
}



## 4. 查询用户状态

### 4.1 描述

调用此接口可获取用户状态,如在线不在线,cid和appid是否对应,appkey是否正确等。

### 4.2 接口名称:```getClientIdStatus(APPID,clientid)

4.3 接口参数

参数 类型 说明
APPID String 设置推送的appid
clientid String 用户唯一标识符(获取方式请参考<前期准备>第一章节)

4.4 getClientIdStatus代码实例

using System;
using System.Linq;
using System.Text;
using Google.ProtocolBuffers;
using com.gexin.rp.sdk.dto;
using com.igetui.api.openservice;
using com.igetui.api.openservice.igetui;
using com.igetui.api.openservice.igetui.template;
using com.igetui.api.openservice.payload;
using System.Net;

namespace GetuiServerApiSDKDemo
{
    public class demo
    {
        //参数设置 <-----参数需要重新设置----->
        //http的域名
        private static String HOST = "http://sdk.open.api.igexin.com/apiex.htm";

        //https的域名
        //private static String HOST = "https://api.getui.com/apiex.htm";

        //采用"C# SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置
        private static String APPID = "";                     
        private static String APPKEY = "";                    
        private static String MASTERSECRET = "";              
        private static String CLIENTID = "";                  //您获取的clientID

        static void Main(string[] args)
        {

            getUserStatus();
        }
        public static void getUserStatus()
        {
               IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
            String ret = push.getClientIdStatus(APPID, CLIENTID);
            System.Console.WriteLine("-----------------------------------------------");
            Console.WriteLine("用户状态:" + ret);
        }
  }
}

5. 获取推送结果

5.1 描述

5.2 接口名称:


### 5.3 参数说明

| 参数         | 参数说明                                                       |
|------------|---------------------------------------------------------------------------------------------------------|
| url         |接口地址(<a href="http://sdk.open.api.igexin.com/apiex.htm">http://sdk.open.api.igexin.com/apiex.htm</a>)|
| Appkey     | 用于鉴定身份是否合法                                               |
|masterSecret| 第三方客户端个推集成鉴权码,用于验证第三方合法性。在客户端集成SDK时需要提供                   |
| taskId     | 任务唯一识别号    (格式OSL-yyMM_XXXXXX)                                               |

### 5.4 返回值

| 回执 | 参数说明                                                                         |
|------|---------------------------------------------------------------------------|
|      | {“taskeId”:”OSA-0820_uQ7gevLuGS7Odz8FS2ZSB9”,”result”:”ok”,”msgTotal”:59,”msgProcess”:0}                                 |
|      | tasked:任务ID<br/>msgTotal:表示有效可下发总数<br/>result:OK执行成功<br/>result:sign_error 表示校验失败    msgProcess:收到消息回执总数 |

### 5.5 获取推送结果实例

using System;
using System.Linq;
using System.Text;
using Google.ProtocolBuffers;
using com.gexin.rp.sdk.dto;
using com.igetui.api.openservice;
using com.igetui.api.openservice.igetui;
using com.igetui.api.openservice.igetui.template;
using com.igetui.api.openservice.payload;
using System.Net;

namespace GetuiServerApiSDKDemo
{
public class demo
{
//参数设置 <-----参数需要重新设置----->
//http的域名
private static String HOST = "http://sdk.open.api.igexin.com/apiex.htm";

    //https的域名
    //private static String HOST = "https://api.getui.com/apiex.htm";

    //采用"C# SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置                 
    private static String APPKEY = "";                    
    private static String MASTERSECRET = "";              


    static void Main(string[] args)
    {

        getPushResult();
    }
     public static void getPushResult() 
    {
        IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
        String ret = push.getPushResult("OSA-0312_oPv6vL62zgA3JU942ZO3S");
        System.Console.WriteLine(ret);

   }


}
}


## 6. 获取单日用户数据

### 6.1 描述

调用此接口可以获取某个应用单日的用户数据(用户数据包括:新增用户数,累计注册用户总数,在线峰值,日联网用户数)(目前只支持查询1天前的数据)

### 6.2 接口名称:```queryAppUserDataByDate(appid,date)

6.3 接口参数:

字段 说明
appId 应用ID
date 查询的日期(格式:yyyyMMdd)

6.4 返回值:

字段 上级 含义
result - 成功:ok
data - 查询数据对象
appId data 请求的AppId
date data 查询的日期(格式:yyyyMMdd)
newRegistCount data 新注册用户数
registTotalCount data 新注册用户数
activeCount data 活跃用户数
onlineCount data 在线用户数

6.5 queryAppUserDataByDate代码示例

using System;
using System.Linq;
using System.Text;
using Google.ProtocolBuffers;
using com.gexin.rp.sdk.dto;
using com.igetui.api.openservice;
using com.igetui.api.openservice.igetui;
using com.igetui.api.openservice.igetui.template;
using com.igetui.api.openservice.payload;
using System.Net;

namespace GetuiServerApiSDKDemo
{
    public class demo
    {
        //参数设置 <-----参数需要重新设置----->
        //http的域名
        private static String HOST = "http://sdk.open.api.igexin.com/apiex.htm";

        //https的域名
        //private static String HOST = "https://api.getui.com/apiex.htm";

        //采用"C# SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置
        private static String APPID = "";                     
        private static String APPKEY = "";                    
        private static String MASTERSECRET = "";              


        static void Main(string[] args)
        {

            queryAppUserDataByDate();
        }
        public static void queryAppUserDataByDate()
        {
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
            String ret = push.queryAppUserDataByDate(APPID, "20150910");
            System.Console.WriteLine(ret);
        }

   }
}

7. 获取单日推送数据

7.1 描述

调用此接口可以获取某个应用单日的推送数据(推送数据包括:发送总数,在线发送数,接收数,展示数,点击数)(目前只支持查询1天前的数据)

7.2 接口名称:queryAppPushDataByDate(appid,date)

7.3 接口参数:

字段 说明
appId 应用ID
date 查询的日期(格式:yyyyMMdd)

7.4 返回值:

字段 上级 含义
result - 成功:ok
data - 查询数据对象
appId data 请求的AppId
date data 查询的日期(格式:yyyyMMdd)
sendCount data 发送总数
sendOnlineCount data 在线发送数
receiveCount data 接收数
showCount data 展示数
clickCount data 点击数

7.5 queryAppPushDataByDate代码示例:

using System;
using System.Linq;
using System.Text;
using Google.ProtocolBuffers;
using com.gexin.rp.sdk.dto;
using com.igetui.api.openservice;
using com.igetui.api.openservice.igetui;
using com.igetui.api.openservice.igetui.template;
using com.igetui.api.openservice.payload;
using System.Net;

namespace GetuiServerApiSDKDemo
{
    public class demo
    {
        //参数设置 <-----参数需要重新设置----->
        //http的域名
        private static String HOST = "http://sdk.open.api.igexin.com/apiex.htm";

        //https的域名
        //private static String HOST = "https://api.getui.com/apiex.htm";
        //采用"C# SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置
        private static String APPID = "";                     
        private static String APPKEY = "";                    
        private static String MASTERSECRET = "";              


        static void Main(string[] args)
        {

            queryAppPushDataByDate();
        }
        public static void queryAppPushDataByDate()
        {
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
            String ret = push.queryAppPushDataByDate(APPID, "20150910");
            System.Console.WriteLine(ret);
        }

   }
}
通知
2017.12.18 iOS SDK 2.1.0.0

新增 SDK 离线状态返回。 优化 SDK 解决已知问题。

......
2017.08.17 Android SDK 2.11.1.0

增加 "绑定、解绑别名" 结果回调 修复 "设置标签" 在某些情况下失败问题 修复若干其他 bug【感谢快看小说的反馈及大力支持~】

......
2017.08.10 iOS SDK 2.0.0.0

新增支持一键解绑该别名下对应的所有用户。 优化 SDK 解决已知问题,以 Framework 形式提供 SDK 库。 扩展 SDK(GtExtensionSdk)新增资源释放接口,防止超时处理导致的问题。

......
2017.08.03 Android SDK 2.10.3.5

调整代码符合google审核规则 针对海外用户进行联网优化 bug修复

......
2017.07.13 PYTHON SDK 4.0.1.4

修改获取用户状态接口的返回值无法识别的问题

......

文档中心搜索