微博广告投放的 Oauth2.0 授权

微博广告投放相关事宜

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 级别】的频次控制;若需要接入其他级别控制,请联系对应渠道的销售人员。

THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容