1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【PHP】抖音授权登录并获取用户公开信息(网页)

【PHP】抖音授权登录并获取用户公开信息(网页)

时间:2022-01-10 01:12:41

相关推荐

【PHP】抖音授权登录并获取用户公开信息(网页)

抖音官方文档:/platform/doc/OpenAPI-oauth2

抖音的官方文档和接口及其随意。。。。

调用流程包括:

第三方发起抖音授权登录请求,抖音用户允许授权第三方应用后(扫码确认或账号密码授权登录),确认通过后,会重定向到第三方网站(回调接口)。并且附带授权临时票据(code)

第三方通过code参数,以及ClientKey和ClientSecret等参数,通过API换取access_token

通过access_token进行接口调用,获取用户基本信息及其他操作等。

一、注册账号

在抖音开放平台注册账号 ,网址:/platform

二、创建应用

填写信息,然后提交,提交之后需要审核

三、查看应用

在《管理中心》可以查看应用信息

审核通过之后会得到Client Key和Client Secret,调用接口时需要使用

四、应用详情

在“接口权限”申请需要使用的权限

在“特殊权限”中申请“静默授权”,用来获取用户的open_id,open_id是用户在该平台的唯一标识

五、获取登录二维码

public function GetLoginQrcode(){$url = $this->url . '/platform/oauth/connect';$redirect_uri = "回调地址";$scope = "scope";$url = $url . "?client_key=" . $this->key . "&response_type=code&scope=" . $scope . "&redirect_uri=" . $redirect_uri . "&state=1";header('Location:' . $url);exit();}

用户允许授权后,将会重定向到redirect_uri的网址上,并且带上code和state参数

六、获取用户公开信息

要获取用户公开信息,需要先获取access_token和open_id

获取access_token和open_id:

public function get_access_token($code){$url = $this->url . '/oauth/access_token/';$params = array('client_key' => $this->key,'client_secret' => $this->secret,'code' => $code,'grant_type' => 'authorization_code',);$data = $this->curl_post($url, $params);return $data;}

curl_post方法:/I_lost/article/details/104518356

返回数据:

根据access_token和open_id获取用户信息:

public function getUserInfo($access_token, $openid){$url = $this->url . '/oauth/userinfo/';$params = array('access_token' => $access_token,'open_id' => $openid);$result = $this->curl_post($url, $params);return $result;}

返回数据:

公用接口返回数据极少,详细数据可使用99接口(/comm_details?id=2034),但是需付费,且和抖音官方接口返回数据无法判断是否是同一个用户。

七、刷新access_token

public function refresh_token($refresh_token){$url = $this->url . '/oauth/refresh_token/';$params = array('client_key' => $this->key,'grant_type' => "refresh_token",'refresh_token' => $refresh_token,);$result = $this->curl_get($url, $params);return $result;}

八、关于access_token和refresh_token的有效期

官方文档:

当access_token过期(过期时间15天)后,可以通过该接口使用refresh_token(过期时间30天)进行刷新:

1. 若access_token已过期,调用接口会报错(error_code=10008或2190008),refresh_token后会获取一个新的 access_token以及新的超时时间。

2. 若access_token未过期,refresh_token不会改变原来的access_token,但超时时间会更新,相当于续期。

3. 若refresh_token过期,获取access_token会报错(error_code=10010),此时需要重新走用户授权流程。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。