网易企业邮OAuth2获取通讯录

访问申请

第三方应用首先提出申请(发邮件),提供应用的授权回调地址。审核通过后,会颁发client_id和clinet_secret。

获取访问令牌

以下是两种获取访问令牌的方法

1. Authorization code grant,适合于有server端的应用授权,推荐使用。

 

第一步:获取授权码。

GET

https://wphz.qiye.163.com/oauth2/authorize?client_id=test_id&response_type=code&redirect_uri=http://qiye.163.com

client_id: 申请时颁发的

response_type: 固定为code

redirect_uri: 申请时的授权回调地址

 

用户在登录页面认证,授权页面授权。

 

授权成功后授权服务器会将用户的浏览器重定向到redirect_uri,并带上授权码。如下:

http://qiye.163.com/?code=****

 

第二步:获取访问令牌。

POST

https://wphz.qiye.163.com/oauth2/token?client_id=test_id&client_secret=test_secret&redirect_uri=http://qiye.163.com&grant_type=authorization_code&code=****

client_id: 申请时颁发的

client_secret: 申请时颁发的

redirect_uri: 申请时的授权回调地址

grant_type: 固定为authorization_code

code: 第一步中获得的授权码

 

授权服务器检查以上信息有效且正确后,返回访问令牌,刷新令牌以及访问令牌的过期时间和资源服务器的访问地址resource_uri。如下:

{"expires_in":259200000,"refresh_token":"****","access_token":"****",”resource_uri”:”***”}

 

第三步:使用刷新令牌换取新的访问令牌(仅适用于访问令牌过期时)

POST

https://wphz.qiye.163.com/oauth2/token?client_id=test_id&client_secret=test_secret&grant_type=refresh_token&refresh_token=****

client_id: 申请时颁发的

client_secret: 申请时颁发的

grant_type: 固定为refresh_token

refresh_token: 刷新令牌

 

授权服务器在检查以上信息有效且正确后,会将新的访问令牌,新的刷新令牌,新访问令牌的过期时间以及资源服务器的访问地址resource_uri返回。如下:

{"expires_in":259200000,"refresh_token":"****","access_token":"****",”resource_uri”:”***”}

同时旧的刷新令牌将会失效。

 

2. Implicit grant,适合于通过客户端直接访问的应用授权

 

第一步:获取访问令牌。

GET

https://wphz.qiye.163.com/oauth2/authorize?client_id=test_id&response_type=token&redirect_uri=http://qiye.163.com

client_id: 申请时颁发的

response_type: 固定为token

redirect_uri: 申请时的授权回调地址

 

用户在登录页面认证,授权页面授权。

 

授权服务器在验证以上信息有效且正确后会将用户的浏览器重定向到redirect_uri,并带上访问令牌以及过期时间和资源服务器的访问地址resource_uri,如下:

http://mail.qiye.163.com/#access_token=****&expires_in= 259200000&resource_uri=wp.qiye.163.com

 

获取通讯录

获取企业通讯录的api。

GET

http://wphz.qiye.163.com/resourceapi /server?op=getQiyeContacts&format=json&client_id=test_id&token=****

host:示例中使用了wphz.qiye.163.com,实际使用中以resource_uri返回的host为准。为了提高用户的访问速度,按照用户所属的区域,对资源服务器进行划分,因此客户端需要根据resource_uri来访问某一台资源服务器。

op: 目前有两种方法getQiyeContacts和getPersonalContacts,分别对应企业通讯录和个人通讯录

client_id: 申请时颁发的

token: 获得的访问令牌

format: 目前支持两种格式json和vcard

 

资源服务器在验证令牌和操作的正确性后,会将通讯录数据返回。如下:

json:

[{"rev":"20","EMAIL;PREF":"aa@163.com","FN":"aa","UID":"PersonalContact-0","ADR;HOME":";;;;;;","Grouping":["PersonalGroup-FRIENDS","PersonalGroup-FAMILY"],"CID":"70421020","TYPE":"PERSONAL"},{"REV":"1369902400484","TEL;type=CELL;type=VOICE;type=pref":"12345678901","FN":"test1","EMAIL;type=INTERNET;type=pref":"dhgfdi@126.com","N":";test1;;;","ZS":"www","Grouping":"PersonalGroup-FAMILY","CID":"72432000","UID":"PersonalContact-72432000","TYPE":"PERSONAL"},{"REV":"1369903425021","FN":"test2","EMAIL;type=INTERNET;type=pref":"sdhsdkhyd@163.com","N":"test2;;;;","TEL;TYPE=PREF;TYPE=WORK":"98765432109","ZS":"sssss","Grouping":"PersonalGroup-FAMILY","CID":"72437140","UID":"PersonalContact-72437140","TYPE":"PERSONAL"},{"rev":"0","UID":"PersonalGroup-FRIENDS","X-TYPE1":"SYSTEM","N":"朋友","X-TYPE":"GROUP","CID":"53635148","TYPE":"PERSONAL"},{"rev":"0","UID":"PersonalGroup-FAMILY","X-TYPE1":"SYSTEM","N":"亲人","X-TYPE":"GROUP","CID":"53635152","TYPE":"PERSONAL"},{"rev":"0","UID":"PersonalGroup-COWORKERS","X-TYPE1":"SYSTEM","N":"同事","X-TYPE":"GROUP","CID":"53635156","TYPE":"PERSONAL"},{"rev":"0","UID":"PersonalGroup-NETFRIENDS","X-TYPE1":"SYSTEM","N":"网友","X-TYPE":"GROUP","CID":"53635160","TYPE":"PERSONAL"},{"rev":"0","UID":"PersonalGroup-VIP","X-TYPE1":"SYSTEM","N":"重要联系人","X-TYPE":"GROUP","CID":"53635164","TYPE":"PERSONAL"},{"rev":"0","UID":"PersonalGroup-RECENT","X-TYPE1":"SYSTEM","N":"常用联系人","X-TYPE":"GROUP","CID":"53635167","TYPE":"PERSONAL"}]

 

vCard(3.0版本,每个联系人以BEGIN:VCARD开始,END:VCARD结尾):

BEGIN:VCARD

VERSION:3.0

rev:20

EMAIL;PREF:aa@163.com

FN:aa

UID:PersonalContact-0

ADR;HOME:;;;;;;

Grouping:["PersonalGroup-FRIENDS","PersonalGroup-FAMILY"]

CID:70421020

TYPE:PERSONAL

N:;aa;;;

END:VCARD

BEGIN:VCARD

VERSION:3.0

REV:1369902400484

TEL;type=CELL;type=VOICE;type=pref:12345678901

FN:test1

EMAIL;type=INTERNET;type=pref:dhgfdi@126.com

N:;test1;;;

ZS:www

Grouping:PersonalGroup-FAMILY

CID:72432000

UID:PersonalContact-72432000

TYPE:PERSONAL

END:VCARD

....

UID属性是联系人和分组的唯一标识,分组和联系人的关系以及分组与分组的关系由UID和Grouping属性决定。

 

  1. da shang
    donate-alipay
               donate-weixin weixinpay

发表评论↓↓