通过mgp25 / Instagram-API项目访问用户的卷轴媒体Feed重点故事(获取所有用户的故事)

时间:2018-12-16 22:56:26

标签: php instagram instagram-api

我使用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 :(得分:1)

通过查看源代码,您想使用InstagramAPI\Response\Model\UnpredictableKeys\ReelUnpredictableContainergetData()方法

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

getData()方法(来自CoreUnpredictableContainer)将数据转换为$_type属性的实例。

$reels现在是InstagramAPI\Response\Model\Reel的实例。尚不清楚您要从中获取什么数据,但API在类本身中定义得很好,例如

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