获取 Access Token中有个不理解的地方,无从下手,求教大虾们。
我用的是PHP curl();
我不明白什么叫“两次302,跟随跳转”,我需要怎么写这样的 “两次302,跟随跳转”。
求教是什么意思?求教怎么实现,拜托大虾们
补图:
代码:
<?php
$param = array(
'client_id' => "7d41026f20xxxxx5ba31",
'client_secret' => "3b507b34abee2xxxxxa897c842e2d6b8c2e1e0"
);
// 获取 code
$code_url = 'https://cloud.minapp.com/api/oauth2/hydrogen/openapi/authorize/';
$code_data = postData($code_url, json_encode($param));
$code_data = json_decode($code_data, true);// 使用 code 获取 Access Token
// echo $code_data;
$param['code'] = $code_data['code'];
$param['grant_type'] = 'authorization_code';
$access_token_url = 'https://cloud.minapp.com/api/oauth2/access_token/';
$access_token = postData($access_token_url, $param, 'multipart/form-data'); // 获取到的 Access Token
print_r($access_token);
// 封装请求函数
function postData($url, $param, $content_type = 'application/json') {
$ch = curl_init();
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $param);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // 设置允许重定向
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, '');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLINFO_CONTENT_TYPE, $content_type); // 设置 Content-Type,默认 application/json
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
302是重定向跳转,你无法使用curl去直接获取access_token,应该是通过跳转后,正常应该会放到url
地址上。通过
去获取,基本流程如下
1、你的url xxx.a.com
2、通过请求后302到 xxx.b.com
3、xxx.b.com得到你的请求验证后又跳回xxx.a.com
4、这个时候你xxx.a.com下的url上就应该又了access_token
补充:使用你提供的id与secret,我这显示正常,应该不是代码问题
会不会是因为你没有curl扩展?
或者是又报错信息,但是你没有设置显示报错信息?