获取access_token(含代码示例)

简要描述

  • 调用该接口获取 access_token

注意事项(必读

  • access_token 是小鹅通开放api的全局唯一接口调用凭据,店铺调用各接口时都需使用 access_token ,开发者需要进行妥善保管;

  • 建议店铺开发者使用中控服务器统一获取和刷新 access_token ,其他业务逻辑服务器所使用的 access_token 均来自于该中控服务器,不应该各自去刷新,否则容易造成冲突,导致access_token 覆盖而影响业务;

  • access_token的有效期目前为2小时(7200秒),需定时刷新。重复获取将导致上次获取的 access_token 在5分钟之后失效。 在刷新过程中,中控服务器可对外继续输出老的 access_token,在5分钟内,新老 access_token 都可用,确保第三方业务能够平滑过渡;

  • 获取 access_token 的接口调用是有频率限制的,该接口的频率是10分钟100次,超出请求次数该接口须等下个10分钟才可以恢复调用。

  • 为了提高API接口的安全性,只有在ip白名单里面的ip,才能成功获取到access_token,否则拒绝访问。因此,调用接口前,请在云服务控制台中提前将服务器的ip添加到白名单中。

请求方式及url:

  • 请求方式:GET
  • 接口地址:https://api.xiaoe-tech.com/token
  • 请求头:Content-Type:application/json
  • 频率限制:10分钟100次

请求参数

参数名 必选 类型 说明 备注(示例)
app_id string 店铺的业务id ...
client_id string 应用的唯一标识,通过 client_id 来鉴别应用的身份 云服务控制台获取
secret_key string 应用的凭证秘钥,即client_secret,用来保证应用来源的可靠性,防止被伪造 云服务控制台获取
grant_type string 固定填写client_credential ...

注意:2019.12.9以前开通了API服务的商家,可以继续使用app_id+secret_key的方式获取access_token。后来开通的商家 请统一按照app_id+client_id+secret_key的方式获取

请求示例

{
    "app_id": "appxxxxxxxxxxx",
    "client_id": "xopxxxxxxxxxx",
    "secret_key": "xxxxxxxxxxxxx",
    "grant_type": "client_credential"    //获取token时, grant_type = client_credential
}

返回示例

  • 正确示例

    {
      "code": 0,
      "msg": "success",
      "data": {
          "access_token": "N2M5MGYXZWITMZIWMY0ZMWE1LTK3YJMTNGY2ZTQXODHINTK3",
          "expires_in": 7200
      }
    }
    
  • 错误示例

    {
      "code": 2001,
      "msg": "invalid secret_key",
      "data": null
    }
    

返回参数

参数名 必选 类型 说明 备注
access_token string 凭证 ...
expires_in int 过期时间,单位秒 ...

备注

获取access_token示例(php示例)

class TokenManage
{
    ...
    const URL = "https://api.xiaoe-tech.com/token";
    private $app_id = "appXXXXXXXXXX";  // 店铺的业务id
    private $client_id = "xopXXXXXXXXXX";    // 应用的唯一标识
    private $secret_key = "XXXXXXXXXX";    // 应用的凭证秘钥
    private $grant_type = "client_credential";    

    public function requestToken(){

        $params = [
            "app_id" => $this->app_id,
            "client_id" => $this->client_id,
            "secret_key" => $this->secret_key,
            "grant_type" => $this->grant_type
        ];
        // 发起请求    
        $result = Http::curlGet(self::URL, $params);
        if (!empty($result['body']) && $result['body']['code'] == 0) {
            $this->writeFile($result['body']['data']);
            return $result['body']['data']['access_token'];
        }
        return false;
    }
    ...

}

获取access_token Demo下载(包含Go、PHP、Java、Python等)

获取access_token 的Demo:Github链接

results matching ""

    No results matching ""