NAV
python java c

1. 协议说明

1.1 加解密算法

import base64
from Crypto import Random
from Crypto.Cipher import AES

class AESCipher:
    """ AES 加密解密 """

    def __init__(self, key):
        self.bs = 16
        if len(key) >= 16:
            self.key = key[:16]
        else:
            self.key = self._pad(key)

    def encrypt(self, raw):
        raw = self._pad(raw)
        iv = Random.new().read(AES.block_size)
        cipher = AES.new(self.key, AES.MODE_CBC, iv)
        return base64.b64encode(iv + cipher.encrypt(raw))

    def decrypt(self, enc):
        enc = base64.b64decode(enc)
        iv = enc[:AES.block_size]
        cipher = AES.new(self.key, AES.MODE_CBC, iv)
        return self._unpad(cipher.decrypt(enc[AES.block_size:]))

    def _pad(self, s):
        return s + (self.bs - len(s) % self.bs) * chr(self.bs - len(s) % self.bs)

    def _unpad(self, s):
        return s[:-ord(s[len(s) - 1:])]
private static String encryptParamsToGet(byte[] PSW, Map<String, String> params) throws Throwable {
    byte[] buff = encryptParamsToPost(PSW, params);
    if (buff == null) {
        return null;
    }
    return Base64.encodeToString(buff, Base64.DEFAULT);
}

private static byte[] encryptParamsToPost(byte[] PSW, Map<String, String> params) throws Throwable {
    if (params == null) {
        return null;
    }
    StringBuilder sb = new StringBuilder();
    Iterator<Map.Entry<String, String>> iter = params.entrySet().iterator();
    while (iter.hasNext()) {
        Map.Entry<String, String> entry = iter.next();
        String key = entry.getKey();
        String value = entry.getValue();
        if (sb.length() > 0) {
            sb.append('&');
        }
        sb.append(key).append('=').append(Uri.encode(value));
    }
    byte[] buff = sb.toString().getBytes("UTF-8");
    byte[] iv = new byte[16];
    Random rd = new Random();
    rd.nextBytes(iv);
    byte[] data = Aes.encrypt(buff, PSW, iv);
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    baos.write(iv, 0, iv.length);
    baos.write(data, 0, data.length);
    byte[] out = baos.toByteArray();
    try {
        baos.close();
    } catch (Throwable e) {
        }
    return out;
}
#import "Encryptor.h"
#import "NSData+CommonCrypto.h"
#import "NSData+AESCrypt.h"
static char kRandomCharTable[62] = {
    'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
    'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f',
    'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
    'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'
};
static NSString *kEncryptKey = @"AjGfpbbQmU7EAnkJ";
@implementation Encryptor

+ (NSData *)AESEncrytAsData:(NSDictionary *)params {
    NSMutableString *str = [NSMutableString new];
    for (NSString *key in params) {
        NSString *value = params[key];
        NSString *vString = [value stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
        [str appendFormat:@"&%@=%@", key, vString];
    }
    NSString *line = @"";
    if ([str length] > 0) {
        line = [str substringFromIndex:1];
    }

    NSData *data = [line dataUsingEncoding:NSUTF8StringEncoding];
    NSData *iv = [self randomDataOfLength:16];
    CCCryptorStatus status = kCCSuccess;
    NSData *encrypted = [data dataEncryptedUsingAlgorithm:kCCAlgorithmAES128 key:kEncryptKey initializationVector:iv options:kCCOptionPKCS7Padding error:&status];
    NSMutableData *result = [[NSMutableData alloc] initWithData:iv];
    [result appendData:encrypted];
    return result;
}

+ (NSString *)AESEncryptAsBase64:(NSDictionary *)params {
    NSData *d = [self AESEncrytAsData:params];
    return [d base64Encoding];
}

+ (NSData *)randomDataOfLength:(NSInteger)length {
    char rand_chars[length];
    for (int i = 0; i < length; i++) {
        u_int32_t randChar = arc4random() % 62;
        rand_chars[i] = kRandomCharTable[randChar];
    }
    return [NSData dataWithBytes:rand_chars length:length];
}
@end

采用AES加密算法/CBC模式/PKCS5Padding补全

密钥: BkGfpbbQmU7EAngJ

向量: byte[16],由调用方随机生成

将16位(byte[16])的向量(iv)置于二进制密文头部,再进行base64encode,生成最终的s参数

将16位(byte[16])的向量(iv)置于二进制密文头部,再进行base64encode,最后发送二进制流。

1.2 PKCS5Padding规则

  1. 计算输入长度为L。
  2. 如果L是16倍数,padding长度为16,padding值为0×10。即在输入后面补齐16字节的0×10。
  3. 如果L不是16倍数,padding长度为16-L%16,padding值为16-L%16。即在输入后面补齐16-L%16的字节,值为16-L%16。
  4. 2和3其实可以根据公式 16-L%16 写成一条规则,这里只是强调2的特殊性,明确并不是不做补齐。

1.3 测试范例

HTTP请求

GET /api/abc or POST /api/abc

请求参数

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
rt int(10) 时间戳,eg:1417439967

GET 返回结果:

{
"c": 0,
"d": {
    "rt": "1490000000",
    "token": "60035ef9e144c8662591914b219a252d0c93854e",
    "type": "get"
     }
}

GET 请求示例

原始参数:

加密后参数:

请求链接:

POST 请求示例

POST 返回结果:

{
"c": 0,
"d": {
    "rt": "1490000000",
    "token": "60035ef9e144c8662591914b219a252d0c93854e",
    "type": "post"
     }
}

参数加密:

Request Body:

2. 数据返回格式

返回JSON数据:

//请求成功,正常返回
{
    "c": 0, //0表示正常
    "d": {
        ……   //具体数据内容
    }
}

//请求异常
{
    "c": -1001, //负数表示出错
    "d": null,  //出错时为空
    "err": {
        "msg": ??????? //错误信息
    }
}

3. 错误码说明

3.1 协议、校验错误

3.2 用户相关

3.3 约会相关

4. 用户相关

4.1 用户登陆

{
"c":0,
"d":{
    "token":"60035ef9e144c8662591914b219a252d0c93854e",
    "rc_token":"JJM/aJomVILJhbTniKrbXRbRn14sCfSE66BHu0z04acLlsip98u2G3k2egTnbMj5rUv5FE7dtFY=",
    "uid": 4
    }
}

-2002,表示手机号码错误

-2004,表示该手机号码尚未注册

-2003,表示登陆密码错误

由于获取融云token耗时比较大,服务器端采用消息队列进行处理。如果rc_token为空,请延迟3s后访问 /v1/rongcloud/token 接口进行获取.

HTTP REQUEST

GET /v1/user/login

QUERY PARAMETERS

参数名 类型 说明
phone string(11) 手机号码,eg: 13570362123
pwd string 用户密码,eg:123abc
rt int(10) 时间戳,eg:1417439967

4.2 用户注册

{
"c":0,
"d":{
    "token":"60035ef9e144c8662591914b219a252d0c93854e",
    "uid": 4
    }
}

-2002,表示手机号码错误

-2005,表示该手机号码已被注册

HTTP REQUEST

POST /v1/user/register

QUERY PARAMETERS

参数名 类型 说明
phone string(11) 手机号码,eg: 13570362123
pwd string 用户密码,eg:123abc
rt int(10) 时间戳,eg:1417439967

4.3 忘记密码

{
"c":0,
"d":{
    "token":"60035ef9e144c8662591914b219a252d0c93854e"
    }
}

-2002,表示手机号码错误

-2004,表示该手机号码尚未注册

HTTP REQUEST

POST /v1/user/findpwd

QUERY PARAMETERS

参数名 类型 说明
phone string(11) 手机号码,eg: 13570362123
pwd string 用户密码,eg:123abc
rt int(10) 时间戳,eg:1417439967

4.4 修改密码

{
"c":0,
"d":{
    "token":"60035ef9e144c8662591914b219a252d0c93854e"
    }
}

-2003,表示原密码验证错误

HTTP REQUEST

POST /v1/user/changepwd

QUERY PARAMETERS

参数名 类型 说明
phone string(11) 手机号码,eg: 13570362123
old_pwd string 用户密码,eg:123abc
new_pwd string 用户密码,eg:abc567
rt int(10) 时间戳,eg:1417439967

4.5 短信验证码

{
"c":0,
}

HTTP REQUEST

POST /v1/user/captcha

QUERY PARAMETERS

参数名 类型 说明
phone string(11) 手机号码,eg: 13570362123
action string 验证码用途:register,findpwd
new_pwd string 用户密码,eg:abc567
rt int(10) 时间戳,eg:1417439967
参数名 类型 说明
phone string(11) 手机号码,eg: 13570362123
action string 验证码用途:register,findpwd
code int(5) 短信验证码,eg:51346
rt int(10) 时间戳,eg:1417439967

4.6 用户信息

{
    "c": 0,
    "d": {
        "info": {
            "username": "haha",
            "phone": "12345678900",
            "headimg": "http://movies.chenjiehua.me/static/headimg/c4/ca/1_1417595028.png",
            "birthday": 655516800,
            "sex": 2
        }
    }
}

-2009,表示该uid对应的用户不存在

获取用户资料

HTTP REQUEST

GET /v1/user/info

QUERY PARAMETERS

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
uid int 用户uid,可选参数,默认查询本人信息
rt int(10) 时间戳,eg:1417439967
{
"c":0,
}

-2010,表示该昵称已被使用

更新用户资料

HTTP REQUEST

POST /v1/user/info

QUERY PARAMETERS

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
username string 用户昵称,可选参数
sex int 用户性别,可选参数,0:保密;1:男;2:女
birthday string(6) 用户生日,可选参数,eg: 19901010
rt int(10) 时间戳,eg:1417439967

4.7 用户头像

{
"c":0,
}

HTTP REQUEST

POST /v1/user/headimg

QUERY PARAMETERS

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
headimg string 头像图片,转换为二进制流后base64encode
rt int(10) 时间戳,eg:1417439967

5. 电影相关

5.1 热门影片

{
"c":0,
"d":{
      "movies": [
            {
                "mactor2": "卡雅·斯考达里奥",
                "myear": 2014,
                "mname": "移动迷宫",
                "mproperty": "动作/悬疑/科幻/惊悚",
                "mid": 174144,
                "id": 2,
                "mtime": "113 分钟",
                "mdirector": "韦斯·波尔",
                "mactor": "迪伦·奥布莱恩",
                "mcover": "http://img31.mtime.cn/mt/2014/09/23/084442.71365987.jpg",
                "mname_en": "The Maze Runner"
            },
            {
                "mactor2": "阿伦·瑞奇森",
                "myear": 2014,
                "mname": "忍者神龟:变种时代",
                "mproperty": "动作/冒险/喜剧/奇幻/科幻",
                "mid": 130928,
                "id": 1,
                "mtime": "101 分钟",
                "mdirector": "乔纳森·理贝斯曼",
                "mactor": "皮特·普劳泽克",
                "mcover": "http://img31.mtime.cn/mt/2014/10/13/151033.93068123.jpg",
                "mname_en": "Teenage Mutant Ninja Turtles"
            },
            ……
       ]
    }
}

HTTP REQUEST

GET /v1/movie/hot_movie

QUERY PARAMETERS

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
cid int 城市id, eg: 365
rt int(10) 时间戳,eg:1417439967

5.2 附近影院

{
"c":0,
"d":{
       "theaters": [
            {
                "roadline": " 21路; 32路; 54区间线; 59路; 65路; 101路; 113路; 213路; 215路; 223路; 320路;324路;326路; 327路; 328路; 329路; 338路; m372路; m391路; m392路; n6路",
                "latitude": 22.5358,
                "longitude": 114.03,
                "tname": "深圳万众国际影城(NEO店)",
                "address": "深圳市香蜜立交NEO大厦A栋3楼",
                "telphone": "0755-88609190",
                "rating": "6.26",
                "tid": 4072
            },
            {
                "roadline": "地铁1/4号线到达会展中心站C出口",
                "latitude": 22.5336,
                "longitude": 114.059,
                "tname": "深圳博纳国际影城皇庭店",
                "address": "深圳市福田区福华三路118号皇庭广场B1-3",
                "telphone": "0755-88609190",
                "rating": "6.26",
                "tid": 4663
            },
            ……
        ]
    }
}

HTTP REQUEST

GET /v1/movie/nearby_theater

QUERY PARAMETERS

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
cid int 城市id, eg: 365
did int 区县id, 可选参数
rt int(10) 时间戳,eg:1417439967

5.3 搜索影院

{
"c":0,
"d":{
       "theaters": [
            {
                "roadline": " 21路; 32路; 54区间线; 59路; 65路; 101路; 113路; 213路; 215路; 223路; 320路;324路;326路; 327路; 328路; 329路; 338路; m372路; m391路; m392路; n6路",
                "latitude": 22.5358,
                "longitude": 114.03,
                "tname": "深圳万众国际影城(NEO店)",
                "address": "深圳市香蜜立交NEO大厦A栋3楼",
                "telphone": "0755-88609190",
                "rating": "6.26",
                "tid": 4072
            },
            {
                "roadline": "地铁1/4号线到达会展中心站C出口",
                "latitude": 22.5336,
                "longitude": 114.059,
                "tname": "深圳博纳国际影城皇庭店",
                "address": "深圳市福田区福华三路118号皇庭广场B1-3",
                "telphone": "0755-88609190",
                "rating": "6.26",
                "tid": 4663
            },
            ……
        ]
    }
}

HTTP REQUEST

GET /v1/movie/search_theater

QUERY PARAMETERS

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
cid int 城市id, eg: 365
did int 区县id, 可选参数
tname string 影院名称
rt int(10) 时间戳,eg:1417439967

5.4 搜索影片

{
"c":0,
"d":{
     "movies": [
            {
                "mname": "一个人的武林",
                "cover": "http://img31.mtime.cn/mt/2014/10/22/092734.28590665.jpg",
                "mid": 199159,
                "director": "陈德森",
                "year": "2014",
                "mname_en": "Kung Fu Jungle"
            },
            {
                "mname": "一个人的突击队",
                "cover": "http://img31.mtime.cn/mt/805/192805/192805.jpg",
                "mid": 192805,
                "director": "Dilip Ghosh",
                "year": "2013",
                "mname_en": "Commando"
            },
            ……
        ]
    }
}

HTTP REQUEST

GET /v1/movie/search_movie

QUERY PARAMETERS

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
keyword stirng 电影关键字
rt int(10) 时间戳,eg:1417439967

5.5 影片信息

{
"c":0,
"d":{
        "info": {
            "mactor2": "阿伦·瑞奇森",
            "myear": 2014,
            "mname": "忍者神龟:变种时代",
            "mproperty": "动作/冒险/喜剧/奇幻/科幻",
            "mid": 130928,
            "mactor": "皮特·普劳泽克",
            "mtime": "101 分钟",
            "mdirector": "乔纳森·理贝斯曼",
            "mname_en": "Teenage Mutant Ninja Turtles",
            "mcover": "http://img31.mtime.cn/mt/2014/10/13/151033.93068123.jpg",
            "id": 1
        }
    }
}

HTTP REQUEST

GET /v1/movie/movie_info

QUERY PARAMETERS

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
mid int 影片id, eg: 130928
rt int(10) 时间戳,eg:1417439967

5.6 影院信息

{
"c":0,
"d":{
       "info": {
            "roadline": "615、781、M253、653",
            "latitude": 22.7189,
            "longitude": 113.799,
            "tname": "南国艺恒国际影城(深圳沙井店)",
            "address": "深圳宝安区沙井街道西环路同心广场3楼",
            "telphone": "0755-88609190",
            "rating": "6.26",
            "tid": 2857
        }
    }
}

HTTP REQUEST

GET /v1/movie/theater_info

QUERY PARAMETERS

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
tid int 影院id, eg: 2857
rt int(10) 时间戳,eg:1417439967

5.7 影片上映

{
"c":0,
"d":{
        "show": [
            {
                "tid": 2655,
                "tname": "深圳UA影院",
                "dname": "罗湖区",
                "did": 1436,
                "address": "深圳罗湖区深南东路5016号京基百纳空间(KK MALL)购物中心四楼"
            },
            {
                "tid": 1900,
                "tname": "保利国际影城深圳南山店",
                "dname": "南山区",
                "did": 1437,
                "address": "深圳市南山区文心五路保利文化广场B区3楼"
            },
            ……
        ]
    }
}

HTTP REQUEST

GET /v1/movie/movie_show

QUERY PARAMETERS

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
cid int 城市id, eg: 365
mid int 影片id
rt int(10) 时间戳,eg:1417439967

5.8 影院上映

{
"c":0,
"d":{
     "show": {
            "showtimecount": 52,   //该影院当天上映的总场数
            "moviecount": 7,    //该影院当天上映的电影部数
            "address": "深圳罗湖区深南东路5016号京基百纳空间(KK MALL)购物中心四楼",
            "latitude": 22.54139,
            "longitude": 114.1052,
            "roadline": "地铁一号线大剧院站B出口\n地王大厦站:观光巴士1线、观光巴士2线、3路、10路、12路、101路、203路、223路、302路、311路、N5路\n深圳书城站:29路、85路、103路、103B路、104路、113路、K113路、204路、K204路、214路、215路、E8路、N3路、N4路、东部假日专线1、海滨4路\n荔枝公园站:7路、23路、24路、30路、33路、62路、63路、K302路、352路、353路、378路、N10路\n寰宇酒店站:377路\n",
            "telphone": "0755-88609190",
            "rating": "6.26",
            "valuedate": [   //该影院近期有电影上映的日期
                "20141104",
                "20141105",
                "20141111",
                "20141112",
                "20141114",
                "20141115",
                "20141116"
            ],
            "movies": [
                {
                    "mactor2": "阿伦·瑞奇森",
                    "myear": "2014",
                    "mactor": "皮特·普劳泽克",
                    "mtime": "101 分钟",
                    "mdirector": "乔纳森·理贝斯曼",
                    "mname": "忍者神龟:变种时代",
                    "mname_en": "Teenage Mutant Ninja Turtles",
                    "mproperty": "动作/冒险/喜剧/奇幻/科幻",
                    "mcover": "http://img31.mtime.cn/mt/2014/10/13/151033.93068123.jpg",
                    "mid": 130928,
                    "showtimes": [
                        {
                            "version": "3D",
                            "hallid": 5911,    //影院大厅编号,暂时不使用
                            "showtimeid": 0,    //播放场次编号,暂时不使用
                            "language": "英文版",   //影片语言
                            "hallname": "5号厅",   //影院大厅
                            "price": "70",     //影片价格
                            "etime": "预计11:57散场",    //该场次结束时间
                            "seat": 92,       //座位数
                            "mid": 130928,
                            "stime": "10:15:00"   //该场次开始时间
                        },
                        {
                            "version": "IMAX3D",
                            "hallid": 5907,
                            "showtimeid": 0,
                            "language": "英文版",
                            "hallname": "IMAX厅",
                            "price": "100",
                            "etime": "预计12:52散场",
                            "seat": 335,
                            "mid": 130928,
                            "stime": "11:10:00"
                         },
                         ……
                     ]
                },
                {
                    "mactor2": "摩根·弗里曼",
                    "myear": "2014",
                    "mactor": "斯嘉丽·约翰逊",
                    "mtime": "89 min",
                    "mdirector": "吕克·贝松",
                    "mname": "超体",
                    "mname_en": "Lucy",
                    "mproperty": "动作/科幻/惊悚",
                    "mcover": "http://img31.mtime.cn/mt/2014/10/24/161527.42497160.jpg",
                    "mid": 206198,
                    "showtimes": [……]
                },
                ……
            ]
        }
    }
}

HTTP REQUEST

GET /v1/movie/theater_show

QUERY PARAMETERS

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
tid int 影院id
showday string 查询日期, eg: 20141104, 可选参数, 默认查询当天数据
rt int(10) 时间戳,eg:1417439967

6. 约会相关

6.1 创建约会

{
"c":0, //创建成功
}

HTTP REQUEST

POST /v1/dating/new

QUERY PARAMETERS

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
title string 约会标题
description string 约会详细信息,暂定为备注信息
note string 保留参数
cid int 用户城市id
did int 用户区县id
tid int 约会影院id
mid int 约会电影id
expense int 埋单:0:AA;1:我请;2:你请
start_time int 约会时间,10位时间戳
target_sex int 约会对象:0:不限;1:男;2:女
target_num int 约会人数
rt int(10) 时间戳,eg:1417439967

6.2 约会详情

{
"c":0
"d": {
      "comments": [                       //该约会的评论
           {
                "username": "tom",        //评论者姓名
                "uid": 2,                 //评论者uid
                "sex": 0,                 //评论者性别
                "headimg": null,          //评论者头像
                "content": "楼主啊,我来了",  //评论内容
                "time": 1417026204,         //评论时间
                "aid": 4,                   //所属约会
                "apply": 1,                 //是否报名
                "id": 2                     //评论编号,用于删除评论
            },
            ……
        ],
        "appoints":  {
                "aid": 4,                //约会编号
                "username": null,        //用户名
                "sex": 0,                //性别
                "title": "空虚啊",        //约会标题
                "description": "只要女的哦",       //备注信息
                "start_time": 1480000000,        //约会时间
                "tid": 4072,        
                "tname": "深圳万众国际影城(NEO店)",          //影院
                "address": "深圳市香蜜立交NEO大厦A栋3楼",      //地址
                "target_num": 1,                 //约会人数
                "target_sex": 1,                 //约会对象
                "apply": 3,                      //报名人数
                "expense": 1,                    //花费,见:创建约会
                "apply": 3,
                "mid": 130928,        
                "mname": "忍者神龟:变种时代", 
                "mname_en": "Teenage Mutant Ninja Turtles",
                "mdirector": "乔纳森·理贝斯曼",
                "mactor": "皮特·普劳泽克",
                "mactor2": "阿伦·瑞奇森",
                "mtime": "101 分钟",
                "mproperty": "动作/冒险/喜剧/奇幻/科幻",
                "mcover": "http://img31.mtime.cn/mt/2014/10/13/151033.93068123.jpg"
     }
}

-1008,请求参数错误,可能是aid错误,该约会不存在

HTTP REQUEST

GET /v1/dating/detail

QUERY PARAMETERS

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
aid int 约会编号
rt int(10) 时间戳,eg:1417439967

6.3 约会主页

{
"c":0,
"d":{
      "appoints": [
            {
                "aid": 4,                //约会编号
                "title": "空虚啊",        //约会标题
                "expense": 1,                    //花费,见:创建约会
                "target_sex": 1,                 //约会对象
                "target_num": 1,                 //约会人数
                "description": "只要女的哦",       //备注信息
                "start_time": 1480000000,        //约会时间
                "apply": 3,                      //报名人数

                "uid": 2,                //用户uid
                "username": "Tom",       //用户昵称
                "sex": 0,                //性别
                "headimg": null,         //用户头像
                "birthday": 655516800,   //生日

                "tid": 4072,        
                "tname": "深圳万众国际影城(NEO店)",          //影院
                "address": "深圳市香蜜立交NEO大厦A栋3楼",      //地址
                "longitude": 114.03,        
                "latitude": 22.5358,        

                "mid": 130928,        
                "mname": "忍者神龟:变种时代", 
                "mname_en": "Teenage Mutant Ninja Turtles",
                "mdirector": "乔纳森·理贝斯曼",
                "mactor": "皮特·普劳泽克",
                "mactor2": "阿伦·瑞奇森",
                "mtime": "101 分钟",
                "myear": 2014,
                "mproperty": "动作/冒险/喜剧/奇幻/科幻",
                "mcover": "http://img31.mtime.cn/mt/2014/10/13/151033.93068123.jpg"
            },
            ……
        ]
    }
}

HTTP REQUEST

GET /v1/dating/home

QUERY PARAMETERS

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
start int 最后一个约会编号,用于加载更多,可选参数(第一次加载赋0值,默认值)
rt int(10) 时间戳,eg:1417439967

6.4 附近的约会

{
"c":0,
"d":{
    "appoints": [
            {
                "aid": 4,                //约会编号
                "title": "空虚啊",        //约会标题
                "expense": 1,                    //花费,见:创建约会
                "target_sex": 1,                 //约会对象
                "target_num": 1,                 //约会人数
                "description": "只要女的哦",       //备注信息
                "start_time": 1480000000,        //约会时间
                "apply": 3,                      //报名人数

                "uid": 2,                //用户uid
                "username": "Tom",       //用户昵称
                "sex": 0,                //性别
                "headimg": null,         //用户头像
                "birthday": 655516800,   //生日

                "tid": 4072,        
                "tname": "深圳万众国际影城(NEO店)",          //影院
                "address": "深圳市香蜜立交NEO大厦A栋3楼",      //地址
                "longitude": 114.03,        
                "latitude": 22.5358,        

                "mid": 130928,        
                "mname": "忍者神龟:变种时代", 
                "mname_en": "Teenage Mutant Ninja Turtles",
                "mdirector": "乔纳森·理贝斯曼",
                "mactor": "皮特·普劳泽克",
                "mactor2": "阿伦·瑞奇森",
                "mtime": "101 分钟",
                "myear": 2014,
                "mproperty": "动作/冒险/喜剧/奇幻/科幻",
                "mcover": "http://img31.mtime.cn/mt/2014/10/13/151033.93068123.jpg"
            },
            ……
        ]
    }
}

HTTP REQUEST

GET /v1/dating/nearby

QUERY PARAMETERS

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
start int 最后一个约会编号,用于加载更多,可选参数(第一次加载赋0值,默认值)
cid int 城市id,eg:365
did int 区县id,可选参数
rt int(10) 时间戳,eg:1417439967

6.5 举报约会

{
"c":0   
}

HTTP REQUEST

POST /v1/dating/report

QUERY PARAMETERS

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
aid int 约会编号
rt int(10) 时间戳,eg:1417439967

6.6 删除约会

{
"c":0   
}

-1008,请求参数错误,可能是aid错误,该约会不存在

-3001,删除约会失败,该约会不属于用户,无权限

HTTP REQUEST

POST /v1/dating/del

QUERY PARAMETERS

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
aid int 约会编号
rt int(10) 时间戳,eg:1417439967

6.7 我发起的约会

{
"c":0,
"d":{
    "appoints": [
            {
                "aid": 4,                //约会编号
                "title": "空虚啊",        //约会标题
                "expense": 1,                    //花费,见:创建约会
                "target_sex": 1,                 //约会对象
                "target_num": 1,                 //约会人数
                "description": "只要女的哦",       //备注信息
                "start_time": 1480000000,        //约会时间
                "apply": 3,                      //报名人数

                "uid": 2,                //用户uid
                "username": "Tom",       //用户昵称
                "sex": 0,                //性别
                "headimg": null,         //用户头像
                "birthday": 655516800,   //生日

                "tid": 4072,        
                "tname": "深圳万众国际影城(NEO店)",          //影院
                "address": "深圳市香蜜立交NEO大厦A栋3楼",      //地址
                "longitude": 114.03,        
                "latitude": 22.5358,        

                "mid": 130928,        
                "mname": "忍者神龟:变种时代", 
                "mname_en": "Teenage Mutant Ninja Turtles",
                "mdirector": "乔纳森·理贝斯曼",
                "mactor": "皮特·普劳泽克",
                "mactor2": "阿伦·瑞奇森",
                "mtime": "101 分钟",
                "myear": 2014,
                "mproperty": "动作/冒险/喜剧/奇幻/科幻",
                "mcover": "http://img31.mtime.cn/mt/2014/10/13/151033.93068123.jpg"
            },
            ……
        ]
    }
}

HTTP REQUEST

GET /v1/user/appoints

QUERY PARAMETERS

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
rt int(10) 时间戳,eg:1417439967

6.8 参加过的约会

{
"c":0,
"d":{
    "appoints": [
            {
                "aid": 4,                //约会编号
                "title": "空虚啊",        //约会标题
                "expense": 1,                    //花费,见:创建约会
                "target_sex": 1,                 //约会对象
                "target_num": 1,                 //约会人数
                "description": "只要女的哦",       //备注信息
                "start_time": 1480000000,        //约会时间
                "apply": 3,                      //报名人数

                "uid": 2,                //用户uid
                "username": "Tom",       //用户昵称
                "sex": 0,                //性别
                "headimg": null,         //用户头像
                "birthday": 655516800,   //生日

                "tid": 4072,        
                "tname": "深圳万众国际影城(NEO店)",          //影院
                "address": "深圳市香蜜立交NEO大厦A栋3楼",      //地址
                "longitude": 114.03,        
                "latitude": 22.5358,        

                "mid": 130928,        
                "mname": "忍者神龟:变种时代", 
                "mname_en": "Teenage Mutant Ninja Turtles",
                "mdirector": "乔纳森·理贝斯曼",
                "mactor": "皮特·普劳泽克",
                "mactor2": "阿伦·瑞奇森",
                "mtime": "101 分钟",
                "myear": 2014,
                "mproperty": "动作/冒险/喜剧/奇幻/科幻",
                "mcover": "http://img31.mtime.cn/mt/2014/10/13/151033.93068123.jpg"
            },
            ……
        ]
    }
}

HTTP REQUEST

GET /v1/user/apply

QUERY PARAMETERS

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
rt int(10) 时间戳,eg:1417439967

7. 评论相关

7.1 创建评论/报名

{
"c":0  
}

-1008,请求参数错误,检查aid,touid,apply

-3004,重复报名

HTTP REQUEST

POST /v1/comment/new

QUERY PARAMETERS

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
aid int 约会编号
touid int 回复用户,0表示直接评论
apply int 是否报名,0: 否,1: 是
content string 评论内容
rt int(10) 时间戳,eg:1417439967

7.2 获取评论

{
"c":0,
"d": {
      "comments": [                       
           {
                "id": 2,                     //评论编号,用于删除评论
                "aid": 4,                   //所属约会
                "apply": 1,                 //是否报名
                "content": "楼主啊,我来了",  //评论内容
                "time": 1417026204,         //评论时间
                "uid": 2,                 //评论者uid
                "username": "tom",        //评论者姓名
                "sex": 0,                 //评论者性别
                "headimg": null,          //评论者头像
                "touid": 1,                 //回复其他人
                "tousername": "jack"        
            },
            ……
        ]
    }
}

HTTP REQUEST

GET /v1/comment/get

QUERY PARAMETERS

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
aid int 约会编号
rt int(10) 时间戳,eg:1417439967

7.3 删除评论

{
"c":0  
}

-3002,删除评论失败,可能是id错误,评论不存在

HTTP REQUEST

POST /v1/comment/del

QUERY PARAMETERS

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
id int 评论编号
rt int(10) 时间戳,eg:1417439967

7.4 接受报名

{
"c":0  
}

-1008,请求参数错误,检查aid,target_uid

-3005,接受报名失败,可能是该约会不属于本人,或该约会已关闭

HTTP REQUEST

POST /v1/comment/accept

QUERY PARAMETERS

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
aid int 约会编号
target_uid int 评论者uid
rt int(10) 时间戳,eg:1417439967

8. 配置相关

8.1 城市列表

{
"c":0,
"d":{
    "cities": [
            {
                "cname_py": "bj",
                "cid": 290,
                "cname_en": "Beijing",
                "cname": "北京",
                "cname_full": "China_Beijing",
                "id": 1
            },
            {
                "cname_py": "cq",
                "cid": 291,
                "cname_en": "Chongqing",
                "cname": "重庆",
                "cname_full": "China_Chongqing",
                "id": 2
            },
            ……
        ]
    }
}

HTTP REQUEST

GET /v1/config/city

QUERY PARAMETERS

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
rt int(10) 时间戳,eg:1417439967

8.2 区县列表

{
"c":0,
"d":{
    "districts": [
            {
                "dname": "宝安区",
                "did": 1433,
                "dname_en": "China_Guangdong_Province_Shenzen_Baoan",
                "id": 55,
                "cid": 366
            },
            {
                "dname": "福田区",
                "did": 1434,
                "dname_en": "China_Guangdong_Province_Shenzen_Futian",
                "id": 56,
                "cid": 366
            },
            ……
        ]
    }
}

HTTP REQUEST

GET /v1/config/district

QUERY PARAMETERS

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
cid int 城市id
rt int(10) 时间戳,eg:1417439967

9. 融云相关

9.1 获取融云token

{
"c":0,
"d":{
    "rc_token":"JJM/aJomVILJhbTniKrbXRbRn14sCfSE66BHu0z04acLlsip98u2G3k2egTnbMj5rUv5FE7dtFY=",
    }
}

由于获取融云token耗时比较大,服务器端采用消息队列进行处理。如果rc_token为空,请延迟3s后重新访问该接口进行获取.

HTTP REQUEST

GET /v1/rongcloud/token

QUERY PARAMETERS

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
rt int(10) 时间戳,eg:1417439967

9.2 更新融云token

{
"c":0,
}

请求更新成功,请客户端延迟3s后访问 /v1/rongcloud/token 获取新的token

HTTP REQUEST

GET /v1/rongcloud/refresh

QUERY PARAMETERS

参数名 类型 说明
token string 用户token,eg: 60035ef9e144c8662591914b219a252d0c93854e
rt int(10) 时间戳,eg:1417439967