获取 Access Token中有个不理解的地方,求教

获取 Access Token中有个不理解的地方,无从下手,求教大虾们。

clipboard.png

clipboard.png

我用的是PHP curl();
我不明白什么叫“两次302,跟随跳转”,我需要怎么写这样的 “两次302,跟随跳转”。
求教是什么意思?求教怎么实现,拜托大虾们

补图:

clipboard.png

代码:

<?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;
}


clipboard.png

阅读 1.1k
评论
    1 个回答

    302是重定向跳转,你无法使用curl去直接获取access_token,应该是通过跳转后,正常应该会放到url

    xxx.com/index.php?access_token=xxxxxx

    地址上。通过

    $_GET['AccessToken']

    去获取,基本流程如下

    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,我这显示正常,应该不是代码问题

    clipboard.png

    会不会是因为你没有curl扩展?
    或者是又报错信息,但是你没有设置显示报错信息?

      相似问题
      推荐文章