API IBM xForce с PHP и JSON

1

Я пытаюсь это сделать в течение некоторого времени, и я в настоящее время изучаю API и т.д. Теперь я пытаюсь подключить свое приложение к IBM xForce, чтобы получить здоровье клиента.

Я пытался использовать небольшие варианты этого кода:

function GetAuthToken(){

$Url = "https://api.xforce.ibmcloud.com/auth/AnonymousToken/";


//send request:
$Client = curl_init($Url);


curl_setopt($Client, CURLOPT_RETURNTRANSFER, 1);


//response:
$Response = curl_exec($Client);




//decode:
$Authorized = json_decode($Response);

$Token = $Authorized->token;
return $Token;
}

echo GetAuthToken();

Я действительно не знаю, что я делаю неправильно

Вот типичный ответ, который я получаю при обращении к URL-адресу в браузере:

{"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyVW5pcXVlSUQiOiIyNWM0OTlkMS0yMjk4LTRjY2YtYTI1ZS1kODZmYzVlZGU2OTQiLCJ0eXBlIjoiYW5vbnltb3VzIiwiaWF0IjoxNDQxNjA5MTE0LCJleHAiOjE0NDE4NjgzMTR9.6a8YsIGfkIxghO7ypvMY7S9LQsR2CuiKO6b-jSAxm3U"}
Теги:

1 ответ

1
Лучший ответ

Ты не сделал ничего плохого. Поскольку имя функции указывает: вы только что получили токен авторизации, который вам нужен, чтобы получить доступ к публичному API. Публичные запросы API (кроме /auth/anonymousToken) требуют наличия допустимого токена авторизации в каждом заголовке запросов.

После того как вы извлекли этот токен, вы должны включить его со значением "Bearer" (обратите внимание на пробел в конце!), За которым следует строка токена в качестве значения его заголовка авторизации.

Пример: curl -I 'https://xforce-api.mybluemix.net/swagger.json/ipr/history/1.2.3.4' -H 'Accept-Language: en-US,' -H 'Authorization: Bearer $Token' -H 'Accept:application/json'

Эти токены авторизации сохраняются в течение трех дней. Вы можете периодически /refresh существующие токены с помощью запроса /refresh или запрашивать совершенно новый токен с запросом /auth/anonymousToken.

Если вы используете одну из библиотек, вы можете сохранить соответствующую запись заголовка в xfeOptions структуре: xfeOptions.headers.Authorization = 'Bearer ' + $Token

Подробнее об этом:

Обновление после комментария Кристиана Гареланда:

curl_setopt($Client, CURLOPT_VERBOSE, 1); твой друг.

Соединения закрыты, поскольку cURL не может проверить сертификат SSL. Быстрое исправление заключается в добавлении curl_setopt($Client, CURLOPT_SSL_VERIFYPEER, false); , здесь описывается правильное исправление.

function GetAuthToken(){

$Url = "https://api.xforce.ibmcloud.com/auth/AnonymousToken/";

//send request:
$Client = curl_init($Url);

curl_setopt($Client, CURLOPT_VERBOSE, 1);
curl_setopt($Client, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($Client, CURLOPT_SSL_VERIFYPEER, false);

//response:
$Response = curl_exec($Client);

//decode:
$Authorized = json_decode($Response, true);
$Token = $Authorized["token"];

return $Token;
}

echo "XF-API-Token: ". GetAuthToken();
  • 0
    Моя проблема в том, что я не получаю никакого значения при выводе 'GetAuthToken ();' есть идеи?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню