Flashter
@Flashter
Учусь программировать

Ошибка при подключении библиотеки InstagramScraper\Instagram?

Strict Standards: Non-static method InstagramScraper\Instagram::getLocationTopMediasById() should not be called statically in C:\OpenServer\domains\instagram\www\index.php on line 413

Fatal error: Using $this when not in object context in C:\OpenServer\domains\instagram\www\src\InstagramScraper\Instagram.php on line 449

Структура папок в OpenServer:
7142ea57e5eb4306b4dee04b12ff621d.PNG

Вызов самой функции
$medias = Instagram::getLocationTopMediasById(1);

Сама функция
public function getLocationTopMediasById($facebookLocationId)
    {
        $response = Request::get(Endpoints::getMediasJsonByLocationIdLink($facebookLocationId), $this->generateHeaders($this->userSession));
        if ($response->code === 404) {
            throw new InstagramNotFoundException('Location with this id doesn\'t exist');
        }
        if ($response->code !== 200) {
            throw new InstagramException('Response code is ' . $response->code . '. Body: ' . $response->body . ' Something went wrong. Please report issue.');
        }
        $cookies = self::parseCookies($response->headers['Set-Cookie']);
        $this->userSession['csrftoken'] = $cookies['csrftoken'];
        $jsonResponse = json_decode($response->raw_body, true);
        $nodes = $jsonResponse['location']['top_posts']['nodes'];
        $medias = [];
        foreach ($nodes as $mediaArray) {
            $medias[] = Media::fromTagPage($mediaArray);
        }
        return $medias;
    }


Источник
библиотека
  • Вопрос задан
  • 382 просмотра
Решения вопроса 1
sHinE
@sHinE
веб-разработчик, php/js/mysql и сопутствующее
Ошибка сообщает вам, что нестатичский метод нельзя вызывать статически.
Т.е. вам сначала надо экземпляр класса Instagram создать, а затем уже вызвать его метод - через стрелочку, а не ::

Даже по вашей ссылке примеры есть, как надо. Там же замечание, что методы больше не статические.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы