我使用的是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 );但我不喜欢它,这是一种有趣的方式,它会随着结构的类和形式的消失而消失。
您的标准解决方案是什么?
发布于 2018-12-17 07:14:03
从源代码来看,您希望使用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();
// etchttps://stackoverflow.com/questions/53807193
复制相似问题