微博第三方登录 curl post传值 处理返回的json数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
$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' ]; <br>curl_close( $ch ); //关闭连接 |
第三方登录 获取令牌时 post方式传值 用curl
返回的数据是json的格式:如下图
获取access_token值时,对json数据进行处理
首先保证返回的数据只是json数据,所以
$params[CURLOPT_HEADER] = false; //是否返回响应头信息 设为false,不要响应头显示
其次,按对象处理
1
2
|
$obj = json_decode( $content ); $token = $obj ->{ 'access_token' }; |
或者,按数组处理
1
2
|
$arr = json_decode( $content ,true); $token = $arr [ 'access_token' ];<br><br>最后,ok了 |