一.获取抖音授权二维码
第一步:拿到抖音应用的client_key;
第二步:获取收取Scope,如:video.create,video.delete,video.data,可以写多个,中间用","隔开;
第三步:设置授权后的回调Url:
;state=1
也即当扫码授权成功后,会跳转到该url上
第三步:组装抖音授权Url:
授权url: ;+client_key+'&response_type=code&scope='+scope+'&redirect_uri='+callback
通过第三方生成二维码组件,生成抖音授权二维码
二.当用户扫码之后,抖音会生成一个code,附带到回调的url上
服务端获取到code的方式:
$code = Request::param('code', false);
// 根据state获取是那种授权
$state = Request::param('state', false);
通过这个临时的code,获取access_token
if(!$code) {
return error_code(10003);
}
$dyApp = new Dyapp();
$result = $dyApp->initToken($code, $state);
if(!$result['status']) {
return error_code(10003);
}
$oid = $result['data']['open_id'];
到这里就获取到了,open_id, access_token,refresh_token等参数
三.如果scope里面填写了,mobile_alert,还将获取用户的手机号码
php的获取方式如下:
/**
* 获取用户手机号码,手机号码解密
*/
private function getUserMobile($encrypt_mobile)
{
$client_secret = getSetting('douyin_client_secret');
$encrypt_mobile_str = base64_decode($encrypt_mobile);
$key = $client_secret;
$iv = substr($client_secret, 0, 16);
$aes = new Aes($key, 'AES-256-CBC', $iv, OPENSSL_RAW_DATA);
$mobile = $aes->decrypt($encrypt_mobile_str);
return $mobile;
}