Используйте API удаленного доступа для вызова

Не уверен, если это должно идти здесь или на бит WordPress, опубликует его там, если это не по теме 🙂

Я пытаюсь вызвать API (PHP новичок), и я полностью застрял на том, как поступить ?? Это то, что я до сих пор …

class MyClass  {
private static $instance = null;

protected function __construct() {
}

private function __clone() {}
private function __wakeup() {}

public static function getInstance() {
if (self::$instance == null)  {
self::$instance = new self;
}
return self::$instance;
}

//Make the request
private function fetch_data($body) {
// Do we have this information in our transients already?
$transient = get_transient( 'fetch_data' );

// Yep!  Just return it and we're done.
if( ! empty( $transient ) ) {
// The function will return here every time after the first time it is run, until the transient expires.
return $transient;
// Nope!  We gotta make a call.
} else {
$api_url = "https://someapi.co.uk/api";
$request = wp_safe_remote_get(  $api_url );
$body = wp_remote_retrieve_body(wp_safe_remote_get( $request ));

// Save the API response so we only call every hour
set_transient('fetch_data', '$body', 900);
if( is_wp_error( $request ) ) {
echo 'Something went wrong!';
return false; // Bail early
}
else
{
$my_data = json_decode( $body, true );
}
return $my_data;
}
}
}
MyClass::getInstance();

Любая помощь будет оценена 🙂

На другой странице я включаю файл, где находится класс

include(locate_template(('modules/my-api-bridge.php'), false, false));

и использовать это

$my_data = MyClass::getInstance();

Когда я вар дамп я получаю это обратно

object(MyClass)#3894 (0) {
}

Я пытаюсь использовать переменную, как это

echo $my_data['Itinary'] ['ItineraryDetails'] ['Name']

Я получаю это сообщение об ошибке

FATAL ERROR: UNCAUGHT ERROR: CANNOT USE OBJECT OF TYPE MyClass AS ARRAY

Я предполагал, что json_decode ($ body, true) преобразует объект JSON в массив PHP?

Поэтому я пытаюсь получить доступ к объекту, как это

echo $my_data->Itinary->ItineraryDetails->Name

Я получаю это сообщение об ошибке

Notice: Undefined property: MyClass::$Itinary in...
Notice: Trying to get property of non-object in...
Notice: Trying to get property of non-object in...

Что-то явно не так, и я не вижу что? Опять же, если это больше подходит для сайта WordPress, я размещу его там 🙂

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector