首页 > 解决方案 > PHP cURL 请求标头不适用于全局变量

问题描述

我已将全局变量设置为等于访问令牌,并且当我 print_($session_id) 时,令牌是可见的。我想做的是将该变量传递到我的 CURLOPT_HTTPHEADER 中,并使其等于下面函数 get_field_data_id() 中的“会话”:

function get_session_id() {
global $session_id;

$curl = curl_init();
$session_url = "/auth";

curl_setopt_array($curl, array(
    CURLOPT_URL => $session_url ,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
        "Content-Type: application/json",
        "Accept: application/json",
        "username: USER",
        "password: PASS",
        "authorizationkey: KEY"
    ),
));

$response = curl_exec($curl);

curl_close($curl);

$session_id = $response;

} add_filter( 'gform_after_submission_4', 'get_session_id' );

function get_field_data_id() {
global $session_id;

$curl = curl_init();
$file_url = "URL";

curl_setopt_array($curl, array(
    CURLOPT_URL => $file_url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
        "Content-Type: application/json",
        "Accept: application/json",
        "Session: {$session_id}"
    ),
));

$response = curl_exec($curl);

curl_close($curl);

echo $response;}

但是,当我运行此函数时,我收到一条错误消息,指出会话 ID 无效。我错过了什么?

{"Message":"Invalid Authorization. Session ID is invalid. "}

标签: phpwordpresscurlgravity-forms-plugin

解决方案


推荐阅读