$code = $_GET['code']; //-----登录要提交的表单数据--------------- $vars['client_id'] = '。。。'; //Appkey $vars['client_secret'] = '。。。'; //app secret $vars['grant_type'] = 'authorization_code'; $vars['code'] = $code; $vars['redirect_uri'] = '。。。。'; //回调地址 //------------------------------------- $method_post = true; //登录提交的url地址(表单中的action的绝对地址) $url = 'https://api.weibo.com/oauth2/access_token'; //---------------------------- $ch = curl_init(); $params[CURLOPT_URL] = $url; //请求url地址 $params[CURLOPT_HEADER] = false; //是否返回响应头信息 $params[CURLOPT_RETURNTRANSFER] = true; //是否将结果返回 $params[CURLOPT_FOLLOWLOCATION] = true; //是否重定向 $params[CURLOPT_USERAGENT] = 'Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1'; $postfields = ''; foreach ($vars as $key => $value){ $postfields .= urlencode($key) . '=' . urlencode($value) . '&'; } $params[CURLOPT_POST] = true; $params[CURLOPT_POSTFIELDS] = $postfields; curl_setopt_array($ch, $params); //传入curl参数 $content = curl_exec($ch); //执行 /* $obj = json_decode($content); $token = $obj->{'access_token'}; */ $arr = json_decode($content,true); $token = $arr['access_token'];
curl_close($ch); //关闭连接
第三方登录 获取令牌时 post方式传值 用curl
返回的数据是json的格式:如下图
获取access_token值时,对json数据进行处理
首先保证返回的数据只是json数据,所以
$params[CURLOPT_HEADER] = false; //是否返回响应头信息 设为false,不要响应头显示
其次,按对象处理
$obj = json_decode($content); $token = $obj->{'access_token'};
或者,按数组处理
$arr = json_decode($content,true); $token = $arr['access_token'];
最后,ok了