接口文档SDK业务专题开发者工具

OAuth授权 (OAuth 2.0)

本节将为您介绍OAuth授权 (OAuth 2.0)相关接口。Marketing API所有接口均需通过请求参数中传递的access_token(授权令牌)来进行身份认证和鉴权,关于授权认证的相关介绍可以参考【授权认证】章节。

所属权限(scope):Account Management, Ads Management, Ads Insights, Audience Management, User Actions

所属权限(scope):Account Management, Ads Management, Ads Insights, Audience Management, User Actions


获取 Authorization Code
全部接口
V1.1
loading

所属权限 Account Management,Ads Management,Ads Insights,Audience Management,User Actions
请求地址 https://developers.e.qq.com/oauth/authorize
请求方法 get

全局参数

全局参数是指每一个接口都需要使用到的参数。详情参考,代码案例参考

参数名称 参数类型
access_token 授权令牌,完成 OAuth 2.0 授权后获得,参考授权认证章节
timestamp

当前的时间戳,单位为秒,允许客户端请求最大时间误差为 300 秒。

MarketingAPI 所使用的时间戳,若无特殊说明,均为秒级时间戳

MarketingAPI 所使用的时区为 GMT+8,例如当时间戳为 1494840119 时,表示 2017-05-15 17:21:59

nonce 随机字串标识,不超过 32 个字符,由调用方自行生成,需保证全局唯一性
fields get 接口增加 fields 字段,用于指定返回参数的字段列表,为选填字段。fields 取值范围为 get 接口返回的 list 中的字段。如不填写,则根据默认值进行返回

请求参数

标有*的参数为必填项

名称 类型 描述
client_id*
integer 应用 id,在开发者官网创建应用后获得,可通过 [应用程序管理页面] 查看
redirect_uri*
string 应用回调地址,仅支持 http 和 https,不支持指定端口号,且主域名必须与创建应用时登记的回调域名一致,若地址携带参数,需要对地址进行 urlencode
字段长度最小 1 字节,长度最大 1024 字节
state
string 验证请求有效性参数,值为用户自取,用于阻止跨站请求伪造攻击
字段长度最小 0 字节,长度最大 512 字节
scope
string 授权范围,可选值:ads_management(广告投放)、ads_insights(数据洞察)、account_management(帐号服务)、audience_management(人群管理)、user_actions(用户行为数据接入),不传即为授权全部权限
字段长度最小 1 字节,长度最大 64 字节
account_type
enum 授权账号类型,登录账号类型 QQ(默认值),微信,[枚举详情]
枚举列表:{ ACCOUNT_TYPE_WECHAT, ACCOUNT_TYPE_QQ }
account_display_number
integer 授权页面展示账号类型(QQ 账号/微信账号)数量,当取值为 1 时授权页面仅展示 account_type 指定的账号类型,当取值为 2 时授权页面展示所有账号类型授权页面,默认优先显示 account_type 指定的账号类型,只能取值 1 或 2
最小值 1,最大值 2

使用说明

  1. OAuth 相关接口无需提供 access_token、timestamp、nonce 等通用请求参数。
  2. 该接口的请求及应答涉及到页面交互,详细过程可参考 [授权认证]

请求示例


在浏览器访问页面
https://developers.e.qq.com/oauth/authorize?client_id=<CLIENT_ID>&redirect_uri=https://www.example.com/response&state=<STATE>&scope=<SCOPE>

应答字段

应答示例

系统跳转至 redirect_uri 对应的系统或页面,同时携带 authorization_code(有效期 5 分钟)和 state 两个参数
形如:https://www.example.com/response?authorization_code=<AUTHORIZATION_CODE>&state=<STATE>


通过 Authorization Code 获取 Access Token 或刷新 Access Token
全部接口
V1.1
loading

所属权限 Account Management,Ads Management,Ads Insights,Audience Management,User Actions
请求地址 https://api.e.qq.com/oauth/token
请求方法 get

请求参数

标有*的参数为必填项

名称 类型 描述
client_id*
integer 应用 id,在开发者官网创建应用后获得,可通过 [应用程序管理页面] 查看
client_secret*
string 应用 secret,在开发者官网创建应用后获得,可通过 [应用程序管理页面] 查看
字段长度最小 1 字节,长度最大 256 字节
grant_type*
string 请求的类型,可选值:authorization_code(授权码方式获取 token)、refresh_token(刷新 token)
字段长度最小 1 字节,长度最大 64 字节
authorization_code
string OAuth 认证 code,可通过获取 Authorization Code 接口获取,当 grant_type=authorization_code 时必填
字段长度最小 1 字节,长度最大 64 字节
refresh_token
string 应用 refresh token,当 grant_type=refresh_token 时必填
字段长度最小 1 字节,长度最大 256 字节
redirect_uri
string 应用回调地址,当 grant_type=authorization_code 时,redirect_uri 为必传参数,仅支持 http 和 https,不支持指定端口号,且传入的地址需要与获取 authorization_code 时,传入的回调地址保持一致
字段长度最小 1 字节,长度最大 1024 字节

使用说明

  1. OAuth 相关接口无需提供 access_token、timestamp、nonce 等通用请求参数。

请求示例


curl -G 'https://api.e.qq.com/oauth/token' \
-d 'client_id=<CLIENT_ID>' \
-d 'client_secret=<CLIENT_SECRET>' \
-d 'grant_type=refresh_token' \
-d 'refresh_token=<REFRESH_TOKEN>' 
					

应答字段

名称 类型 描述
authorizer_info
struct 权限信息,当 grant_type=refresh_token 时不返回
account_uin
integer 授权的推广帐号对应的 QQ 号
account_id
integer 授权的推广帐号 id,大部分接口均需同步该字段,请妥善保存
scope_list
string[] 权限列表,若为空,则表示拥有所属应用的所有权限
wechat_account_id
string 授权的推广帐号对应的微信帐号 id
account_role_type
enum 授权账号身份类型,授权账号类型广告主,代理商,T1 账户,商务管家账户,[枚举详情]
account_type
enum 账号类型,[枚举详情]
role_type
enum 角色,[枚举详情]
access_token
string 应用 access token
refresh_token
string 应用 refresh token,当 grant_type=refresh_token 时不返回
access_token_expires_in
integer access_token 过期时间,单位(秒)
refresh_token_expires_in
integer refresh_token 过期时间,单位(秒),当 grant_type=refresh_token 时不返回

应答示例

{
    "code": 0,
    "message": "",
    "message_cn": "",
    "data": {
        "authorizer_info": {
            "account_uin": 2644750491,
            "account_id": 2947221,
            "scope_list": [
                "ads_management",
                "ads_insights",
                "account_management",
                "audience_management",
                "user_actions"
            ],
            "wechat_account_id": "spid1234567890",
            "account_role_type": "ACCOUNT_ROLE_TYPE_AGENCY"
        },
        "access_token": "<ACCESS_TOKEN>",
        "access_token_expires_in": 86400,
        "refresh_token_expires_in": 2592000
    }
}