授权

1. 由第三方平台判断用户是否已授权,如已授权可以正常使用。
2. 如授权过期,调用Refresh token API获取最新的access_token和refresh_token(至此授权结束)。
3. 如未授权,第三方平台发起山东24小时扫码授权请求,山东24小时订阅号用户使用客户端扫码,授权第三方应用。
3. 授权成功,山东24小时服务端向redirect_uri推送消息,并附带code和state。
4. 第三方平台调用Token API用code获取access_token和refresh_token。
5. 注意:接口返回值进行了gzip压缩,如果获取的是乱码,先解码。

API接口

API授权接口

1.内嵌授权二维码

用户在网站内就能完成登录,无需跳转到山东24小时域下登录后再返回,提升登录授权的流畅性与成功率。 网站内嵌二维码授权JS实现办法

步骤1.在页面中先引入如下JS文件:

<script src="http://open.dzwww.com/js/sd24Login.js"></script>

步骤2.在需要使用的地方添加如下代码:

var obj = new sd24Login({
      id:"qrcode_container",
      client_id: "",
      redirect_uri: "",
      state: ""
});

  • 参数
参数 含义 说明
id 第三方页面显示二维码的容器id
client_id 合作的client_id
redirect_uri 回调的地址 与登记的回调地址一样,如果地址中含有参数,需要urlencode
state 第三方页面带的一些状态值

2.订阅号用户使用山东24小时客户端扫码授权

授权成功后,页面跳转到redirect_uri,并附带code和state。注意:code中含/,获取到code之后需要urlencode,才能在下面的步骤中使用

3.Token API

获取access_token和refresh_token

地址 :http://open.dzwww.com/auth/token

  • 参数
参数 含义 说明
grant_type 授权的类型 authorization_code
code 服务器分配的authorize_code 通过上一步获得
client_id 合作的client_id
client_secret 合作的client_secret
redirect_uri 回调的地址 与登记的回调地址一样,如果地址中含有参数,需要urlencode
  • 正确的返回

{
      expires_in: 3600,
      access_token: "ACCESS_TOKEN",
      refresh_token: "REFRESH_TOKEN"
}

参数 含义 说明
expires_in access_token接口调用凭证超时时间,单位(秒) 第三方需保存
access_token 接口调用凭证 第三方需保存
refresh_token 用户刷新access_token 第三方需保存

4.Refresh Token API

access_token是调用授权关系接口的调用凭证,由于access_token有效期(目前为1个小时)较短,当access_token超时后, 可以使用refresh_token进行刷新,每次调用refresh_token会获取一个新的access_token,新的超时时间; refresh_token拥有较长的有效期(30天),当refresh_token失效后,需要用户重新授权。

地址 :http://open.dzwww.com/auth/refresh_token

  • 参数
参数 含义 说明
grant_type 授权的类型 refresh_token
refresh_token 通过上一步获得
client_id 合作的client_id
client_secret 合作的client_secret
  • 正确的返回

{
      expires_in: 3600,
      access_token: "ACCESS_TOKEN",
      refresh_token: "REFRESH_TOKEN"
}

参数 含义 说明
expires_in access_token接口调用凭证超时时间,单位(秒) 第三方需保存
access_token 接口调用凭证 第三方需保存
refresh_token 用户刷新access_token 第三方需保存

5.用户信息

地址 :http://open.dzwww.com/open/user

  • 参数
参数 含义 说明
access_token 用户授权给合作伙伴的access_token 通过GET参数带上
client_id 合作的client_id 通过GET参数带上
  • 返回值
参数 含义 说明
open_id
mp_id 订阅号ID
mp_name 订阅号名称
description 描述
avatar_url 头像地址

示例

1. 在网站中内嵌授权二维码
2. 山东24小时订阅号用户使用客户端扫码后,重定向至:{第三方回调地址}?code=fdhjr6tr4edshre090b4&state=febac09284cba
3. 从服务器端换取access_token并存储。
http://open.dzwww.com/auth/token?grant_type=authorization_code&client_id=f1764d74a834d700&client_secret=36fb9be3cb72c9d7867cd9448a042479&redirect_uri={第三方回调地址}&code=afJlzpw97Sly0i4gXMdoQeWdPtlB0JWNHNqAjAXib2Cb0DrrP4QjSKrh2G%2Fc3lU3fC9iOLqvBB5LfVygmgSZAZ8cXHy1p%2FGX4zsWmfgTxzhsQKgcSnrZ%2FJCdrDQATCupa2lBC0%2FnWztH34zvajKlzl7bE9%2FjYFnIJOZZTEC2kpyGg1D%2FVKbFFiwNk8QnnK6UwI65ohlp4ouZ3pFaRApEsIPlrpYtB8TbCDsYsiRpoBY0zJ8BAGvhyY6Wmt%2B0R6EIg%2Fukp5CTp84D9qByUogZyw0sGQcUXuA6hOR%2FiuIbPxQ0SjORQtGP5yvBf8FJuLU8uLnPwtuDycXsEAh6jmmcgIHq13e1aTh9jPS7KkAu9UBWFczTXD40MHdXgAEwJF%2FE2ZrMavz9b4JO90JDM04M4uBEZwkVtecGeRf2GI9j75FVEu9QrbP8%2F8nZtHLuxYoobAylO12Ge5G6a4jpyu0c3nTySwiBBfjUCQBJihybWYkiuYlLILLWeZQD3h%2F3Jnfj