Используйте значение, возвращаемое из cURL, чтобы сделать последующий вызов в качестве заголовка авторизации - PullRequest
0 голосов
/ 12 апреля 2019

Я звоню в API с помощью cURL, и я получаю успешный вызов, но API требует, чтобы я использовал успешный вызов для выполнения последующих вызовов, в частности: используйте возвращаемое значение, чтобы сделать последующий вызов в качестве заголовка авторизации.

Я не уверен, что именно попробовать. Я получаю правильный ответ в теле страницы, просто через curl_exec ($ ch); но я не уверен, куда идти.

<?php

//Set Variables
$username = 'my_username';
$password = 'my_password';
$showcode = 'my_showcode';

//Set url variable with showcode as a query string
$url = "https://api.mysstaging.com/mysRest/v2/Authorize/?showCode=$showcode";

// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, $url );

//Set un/pw for basic auth
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");

// grab URL and pass it to the browser
curl_exec($ch);

//Expect to store and use variable but not sure how
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  'Authorization: ' . mysGUID,
));


// close cURL resource, and free up system resources
curl_close($ch);
?>

Из curl_exec ($ ch) я получаю ответ в теле с mysGUID, и именно здесь я думаю, что должен / могу передать его как переменную, но я не уверен, как сохранить ответ как переменную в php, а затем сделать последующий вызов, используя его? Я прошу прощения, я все еще довольно зеленый с API, но, надеюсь, я на правильном пути?

1 Ответ

0 голосов
/ 12 апреля 2019

Я смог разобраться с этим. На случай, если кто-то застрянет, я выбрал настройку CURLOPT_RETURNTRANSFER, чтобы я мог использовать значения. Затем я создал переменную для возвращенного ключа и значения (я называю это GUID). Затем я использовал эту переменную для преобразования вывода в массив, который затем позволил мне получить только значение из возвращенного идентификатора GUID, который я затем сохранил в переменной, которую можно использовать для последующих вызовов.

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// create variable for authorization output, this gives us the GUID we need.
$authOutput = curl_exec($ch);

// Convert JSON string to Array to pull the GUID value only
$outputArray = json_decode($authOutput, true);

//create variable for myResult variable
$myResult= $outputArray[0]["myResult"];

echo "My Result = $myResult";

// close cURL resource, and free up system resources
curl_close($ch);

...