php对接抖音小程序授权登录

后端代码

/**
* 抖音授权 获取openid
* @param Request $request

 * @return Json
 */
public function code2Session(Request $request): Json
{
    $param = $request->param();
    $config = config('douyinconfig.douyin');
    $arr = [
        'appid' => $config['appid'], //抖音appid
        'secret' => $config['secret'], //抖音secret
        'code' => $param['code'], //前台获取的code
        'anonymous_code' => '',
    ];
    $url = 'https://developer.toutiao.com/api/apps/v2/jscode2session'; //抖音接口地址
    //获取信息
    $rea = $this->getJson($url, $arr);
    $res = json_decode($rea, true);

    return api_success($res['data']);
}

/**
* 抖音接口$rea 返回值
/

{
“err_no”: 0,
“err_tips”: “success”,
“data”: {
“session_key”: "hZy6t19VPjFqm
*******",
“openid”: “V3WvSshYq9******”,
“anonymous_openid”: “”,
“unionid”: “f7510d9ab***********”
}
}


前端可根据openid session_key 获取抖音方用户名、头像、性别等信息

//curl请求 调用抖音接口

    protected function getJson($url, $data, $ssl = true)
    {
        //curl完成
        $curl = curl_init();
        $data   = json_encode($data);
        //设置curl选项
        curl_setopt($curl, CURLOPT_URL, $url); //URL
        $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0 FirePHP/0.7.4';
        curl_setopt($curl, CURLOPT_USERAGENT, $user_agent); //user_agent,请求代理信息
        curl_setopt($curl, CURLOPT_AUTOREFERER, true); //referer头,请求来源
        curl_setopt($curl, CURLOPT_TIMEOUT, 30); //设置超时时间
        //SSL相关
        if ($ssl) {
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); //禁用后cURL将终止从服务端进行验证
            curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); //检查服务器SSL证书中是否存在一个公用名(common name)。
        }
        // 处理post相关选项
        curl_setopt($curl, CURLOPT_POST, true); // 是否为POST请求
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // 处理请求数据
        // 处理响应结果
        curl_setopt($curl, CURLOPT_HEADER, false); //是否处理响应头
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); //curl_exec()是否返回响应结果

        // 发出请求
        $response = curl_exec($curl);
        if (false === $response) {
            echo '<br>', curl_error($curl), '<br>';
            return false;
        }
        curl_close($curl);
        return $response;
    }
  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值