我使用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 );
但是我不喜欢它,这是一种有趣的方式,它将随着结构的类和形式也消失而消失。
您的标准解决方案是什么?
答案 0 :(得分:1)
通过查看源代码,您想使用InstagramAPI\Response\Model\UnpredictableKeys\ReelUnpredictableContainer
的getData()
方法
$reels = $ig->story->getReelsMediaFeed($feedId)->getReels()->getData();
getData()
方法(来自CoreUnpredictableContainer
)将数据转换为$_type
属性的实例。
$reels
现在是InstagramAPI\Response\Model\Reel
的实例。尚不清楚您要从中获取什么数据,但API在类本身中定义得很好,例如
$items = $reels->getItems();
$location = $reels->getLocation();
// etc