通过“mgp25/Instagram-API”项目访问用户的卷轴媒体提要突出故事(获取所有用户的故事)

Access to the user's reels media feed highlight story (Get all user's stories) by `mgp25/Instagram-API` project

我用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() );

但是returnNULL.

我可以使用 jsonSerialize() 或相同的方法:

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

但我不喜欢它,这是一种有趣的方式,它将随着 class 和结构形式的消失而消失。

你的标准解决方案是什么?

从源码看,想用InstagramAPI\Response\Model\UnpredictableKeys\ReelUnpredictableContainer

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

getData() 方法(来自 CoreUnpredictableContainer)将数据转换为 $_type 属性.

的实例

$reels 现在是 InstagramAPI\Response\Model\Reel 的一个实例。目前还不清楚你想要从中得到什么数据,但 API 在 class 本身中定义得很好,例如

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