Доступ к рассказу о ролике медиа-ролика пользователя (Получить все истории пользователя) в рамках проекта `mgp25 / Instagram-API` - PullRequest
0 голосов
/ 17 декабря 2018

Я использую mgp25/Instagram-API выпуск ^5.0 стабильную версию.

Мне нужно получить все носители истории пользователя.

У меня есть этот код:

$user = 'instagram';
$userId = $ig->people->getUserIdForName($user);
$feedId = $ig->highlight->getUserFeed($userId)->getTray()[0]->getId();
var_dump( $ig->story->getReelsMediaFeed($feedId)->getReels() );

Результат (данные в приватном методе _objectData):

object(InstagramAPI\Response\Model\UnpredictableKeys\ReelUnpredictableContainer)#1453 (4) {
  ["_type":protected]=>
  string(33) "\InstagramAPI\Response\Model\Reel"
  ["_cache":protected]=>
  NULL
  ["_compiledPropertyMapLink":"LazyJsonMapper\LazyJsonMapper":private]=>
  &array(0) {
  }
  ["_objectData":"LazyJsonMapper\LazyJsonMapper":private]=>
  array(1) {
    ["highlight:17907400474216512"]=>
    array(13) {
      ["id"]=>
      string(27) "highlight:17907400474216512"
      ["latest_reel_media"]=>
      int(1520611200)
      ["seen"]=>
      NULL
:
:

Я пытаюсь этот код:

var_dump( $ig->story->getReelsMediaFeed($feedId)->getReels()[$feedId] );

Я получаю эту ошибку:

Fatal error: Uncaught Error: Cannot use object of type InstagramAPI\Response\Model\UnpredictableKeys\ReelUnpredictableContainer as array in...

А также я пытаюсь этот код:

var_dump( $ig->highlight->getUserFeed($userId)->getTray()[0]->getItems() );

Но вернуть NULL.

Я могу использовать jsonSerialize() или те же методы:

var_dump( $ig->story->getReelsMediaFeed($feedId)->getReels()->jsonSerialize()->$feedId );

Но мне это не нравится, и это забавный способ, который исчезнет, ​​когда исчезнут также класс и форма структуры.

Каково ваше стандартное решение?

1 Ответ

0 голосов
/ 17 декабря 2018

Посмотрев на исходный код, вы хотите использовать getData() метод InstagramAPI\Response\Model\UnpredictableKeys\ReelUnpredictableContainer

$reels = $ig->story->getReelsMediaFeed($feedId)->getReels()->getData();

Метод getData() (из CoreUnpredictableContainer) преобразуетданные в экземпляр свойства $_type.

$reels теперь являются экземпляром InstagramAPI\Response\Model\Reel.Неясно, какие данные вы хотите получить от этого, но API определен довольно хорошо в самом классе, например

$items = $reels->getItems();
$location = $reels->getLocation();
// etc
...