API2.0调用示例

第三方“站内组件”和“连接网站”均可以调用API2.0。

第三方站内组件:可以很方便地获取access_token,因此可以通过OAuth2.0的access_token调用API2.0;
第三方连接网站(通过OAuth1.0/OAuth2.0实现):可以通过“OAuth1.0a/OAuth2.0 access token方式”来调用。

下面是调用方式示例:

1. OAuth2.0 access token方式

1) 调用API:https://api.kaixin001.com/users/me.json取出当前用户的信息:

2) 参数包括: 接口参数:无
OAuth协议参数:

参数参数值
access_token 12932845_fb84eae5330e0097f24465813a6a18f9
使用OAuth2.0 access token调用API2.0需要发送HTTPS请求,使用HTTP发送请求将返回40026错误。

3) 请求方式:

A. 用HTTPS GET方式请求如下:

https://api.kaixin001.com/users/me.json?access_token=12932845_fb84eae5330e0097f24465813a6a18f9

响应结果如下:

{
    "uid":12932845,
    "name": "\u5434\u4e09",
    "gender": "0",
    "logo50": "http:\/\/img.kaixin001.com.cn\/i\/50_0_0.gif"
}

B. 用HEADER方式请求如下:

GET /users/me.json?access_token=12932845_fb84eae5330e0097f24465813a6a18f9  HTTP/1.1 User-Agent: KX PHPSDK API v2.0.1 Host: api.kaixin001.com Accept: */*

响应结果如下:

{
    "uid":12932845,
    "name": "\u5434\u4e09",
    "gender": "0",
    "logo50": "http:\/\/img.kaixin001.com.cn\/i\/50_0_0.gif"
}

2. OAuth1.0a access token方式

目前仍然可以使用OAuth1.0调用api,但已经不推荐使用OAuth1.0调用。

1) 调用API http://api.kaixin001.com/users/me.json 取出当前用户的信息:

2) 参数包括:
接口参数:无
OAuth协议参数:

参数参数值
oauth_consumer_key887707516627f4111677ff07a0c2d241
oauth_nonce98d46bfa24c22663ef042cb31a3841fb
oauth_signaturec3MXRWKMowptboL%2F88tFYvaKnNQ%3D&
oauth_signature_methodHMAC-SHA1
oauth_timestamp1309345578
oauth_tokene57a9cca11e28358e73ee33737614d
oauth_version1.0

3) 用HTTP GET方式请求如下(开心网的OAuth1.0a同时支持header方式的请求):

http://api.kaixin001.com/users/me.json?oauth_consumer_key=887707516627f4111677ff07a0c2d241&oauth_nonce=98d46bfa24c22663ef042cb31a3841fb&oauth_signature=c3MXRWKMowptboL%2F88tFYvaKnNQ%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1309345578&oauth_token=e57a9cca11e28358e73ee33737614d&oauth_version=1.0

4) 返回结果

{
    "uid": "46765",
    "name": "\u5218\u4e00",
    "gender": "0",
    "hometown": "\u5317\u4eac",
    "city": "\u5317\u4eac",
    "status": "2",
    "logo120": "http:\/\/pic1.kaixin001.com.cn\/logo\/4\/67\/120_46765_2.jpg",
    "logo50": "http:\/\/pic1.kaixin001.com.cn\/logo\/4\/67\/50_46765_2.jpg",
    "birthday": "1780-01-01",
    "bodyform": "0",
    "blood": "1",
    "marriage": "0",
    "trainwith": "",
    "interest": "",
    "favbook": "",
    "favmovie": "",
    "favtv": "",
    "idol": "",
    "motto": "",
    "wishlist": "",
    "intro": "",
    "education": [{
        "schooltype": "0",
        "school": "\u5317\u4eac\u5927\u5b66",
        "class": "\u8f6f\u4ef6\u4e0e\u5fae\u7535\u5b50\u5b66\u9662 11",
        "year": "2011"
    }],
    "career": [{
        "company": "\u5f00\u5fc3\u7f51",
        "dept": "\u6280\u672f",
        "beginyear": "2011",
        "beginmonth": "01",
        "endyear": "2011",
        "endmonth": "12"
    }],
    "isStar": "0"
}

3. session key + SSL方式

特别注意:
1) 从2012年3月7日开始,开心网“站内应用”的授权将采用OAuth2.0协议,接口调用方式即OAuth2.0 access token方式
2) 3月7日12:00以后注册的应用,都必须采用新的授权协议,新的应用将不再支持Session Key调用接口的方式
3) 3月7日12:00以前注册的应用以及wap站内应用仍可使用Session Key方式调用接口
4) Session Key有效期为6个小时,过期请重新获取

session key + SSL的方式调用API2.0接口,以user/me 获取当前登录用户的资料为例:

1) 请求URL地址:需用https替换原来的http

user/me 获取当前登录用户的资料接口,请求URL原来为http://api.kaixin001.com/users/me.(json|xml),需改成:https://api.kaixin001.com/users/me.(json|xml)

2) 参数包括:
接口参数:参见user/me

附加参数:
session_key(如果你还不清楚什么是session key,请参考session_key说明

3) 用HTTP GET方式请求如下:

https://api.kaixin001.com/users/me.json?session_key=115300292_100006830_115300292_1313114256_a032e57f0a7d8aa65fb64c1fbd59b767

4) 返回结果

JSON格式:

{
    "uid": "115300292",
    "name": "\u674e\u8fde\u6770",
    "gender": "0",
    "logo50": "http:\/\/img.kaixin001.com.cn\/i\/50_0_0.gif"
}