微博广告投放
Oauth2.0 授权
为您创建的应用授权
微博广告开放平台的认证依据 RFC6749 得以实现。现阶段仅实现了 Authorization Code Grant,获取访问令牌(token)的工作流程如下:
在微博广告投放方面
有几点特殊情况需要客户方技术人员留意:
1、同一个广告主账号允许反复授权,再次授权后会更新 code(code 授权码有效期为 10 分钟,且只能使用一次);
2、授权成功支持跳转回调地址,code 会通过这种方式回传,接收方式为 get 请求,并且您能够通过 state 原样获取您的参数,以便处理自身的逻辑;
3、凭借 code 能够生成新的 access_token 和 refresh_token,access_token 的时效是一小时,refresh_token 有 7 天和 90 天两种不同级别,默认有效期为 90 天,refresh_token 可以刷新 access_token,刷新后原 access_token 便无法使用。
第一步:获取 Authorization Code
请求地址:
GET
https://api.biz.weibo.com/oauth/authorize
请求参数:
拼接授权 code 示例:
https://api.biz.weibo.com/oauth/authorize?client_id=APP_ID&redirect_uri={您的回调地址}&response_type=code&state=xyz&scope=ads_read
此时将其粘贴进浏览器中会出现授权页面,如下图所示,请选择相关权限后点击【授权按钮】:
请注意:
此时在网页上登录的账号
才是您获取的 token 所对应的账号,
请再三确认此页面,当前登录的是否为期望获取 token 的账号
此时如果您不使用投放相关的 API,请勾选只读+查看权限,不要勾选投放,否则会进入沙箱报错;
如果您想要使用投放功能相关的 API,请勾选 3 个,并将 clientid 告知您的销售,让其帮助您开通投放功能并且避免进入沙箱;
授予权限成功后,请求会被重定向到之前所传的 redirect_url,并连同 code 参数和 state 参数
{您的回调地址}?code=8350c34e53e20ad4ea2457530bb07561559600131f1c495e6b3567810bb3&state=xyz
此时您的服务器端能够获取到 code,进而进行第二步操作,
code 10 分钟后将会失效,每个 code 换取 access_token 后程序也会将其设置过期,每个 code 仅能换取一次 access_token。
第二步:创建 access_token 令牌
请求地址:
GET
https://api.biz.weibo.com/oauth/token
请求参数:
示例:
https://api.biz.weibo.com/oauth/tokenclient_id=APP_ID&grant_type=authorization_code& redirect_uri=http%3A%2F%2Ftestclient1.ads.uve.pw%2Findex.php&code=bd699ae9a8e1ead13fd47b9b
若成功会返回
{ “access_token”: “0879b561ce852525f17a58f3fc6b136446c86a3ae9bb179d323fbd269678be704e82b54dbd1502cf192a2b7c5f34f98327c1b2341584872de1c7d681ffcd1ad2”, “expires_in”: 3599, “refresh_token”: “6b2b27d43c704170cb6495a0c1b19452704f6aafaa8c228ddbfb9ea3a231b5ad034fb0cfc6e8fb3fee4a8e0ba1e4ace0bfab2ed8464d125ebf37ecc20441ec83”, “refresh_expires_in”: 604800, “token_type”: “Bearer” }
其中 access_token 的过期时间为 1 个小时,access_token 过期后您需要让用户重新授权或者通过下面利用 refresh token 换取 access token 的方式获取新的 access_token。refresh_token 的过期时间默认 90 天,具体配置由我们的后台掌控。
注意:refresh_token 目前没有续期机制,到期【必须】需要客户重新授权以获取新的 refresh_token。 原因在于我们广告投放的特殊性,
定期重新授权也是为了您的利益考量。微博当前没有放开限制的打算,其他竞品策略也暂不参考。
举例请求 API 接口:
当您获取到了 access token 后, 就能够通过 token 调用任意 API 接口了,可以通过 Authorization 头部传递 token。
下面是一个获取用户广告账号信息的请求示例:
curl -XGET \ -H “Authorization: Bearer {ACCESS_TOKEN}” \ -H “Accept: application/json,application/text+gw2.0” \ “https://api.biz.weibo.com/account”
第三步:刷新 access_token 令牌
当使用一小时后,您的 access 会过期失效,使用 refresh_token 能够刷新 access_token,以替换即将到期的 access_token,刷新后原 access_token 将无法使用。
注意 使用 refresh token 获取时请不要使用多线程或者避免并发操作,否则可能会出现问题。
请求地址:
GET
https://api.biz.weibo.com/oauth/token
请求参数:
示例:
https://api.biz.weibo.com/oauth/tokenclient_id=APP_ID&grant_type=refresh_token&refresh_token= 7141183a7c563e773ab2ae316c262c1b9bd4024c2821dafdfa6eb53b8127b7fa3abe0abe2926e91ed970a6cfcfe74163460fed79013b
返回:
{ “access_token”: “d21ea15dc4fc595328b9776044d230c6b0d55a028be6778e43791e5000670de1991aa75baef8e8c8d06aa8a179990c6dee1615f5cf631f453069ba42f5daa17b”, “expires_in”: 3599, “token_type”: “Bearer” }
微博广告投放频控限制
我们针对每一个开发者应用都设定了四个不同等级的调用频次限制,包括了 Token 天数、分钟频次、小时频次、天数频次:
微博广告投放频次通用规则:
提示:
当前只读账号默认会自动接入【LEVEL_3 级别】的频次控制;若需要接入其他级别控制,请联系对应渠道销售人员。
暂无评论内容