我正在尝试使用 Yii 框架和 Yii 扩展 yiinstagram 创建一个 Instagram 应用程序。我可以成功连接到 Instagram,但我无法检索所有当前用户的个人资料数据。这是我在控制器中连接到 Instagram 并检索用户数据的代码。
public function actionIndex()
{
$instagram = Yii::app()->instagram->getInstagramApp();
if (isset($_GET['code']))
{
$accessToken=$instagram->getAccessToken();
Yii::app()->session['InstagramAccessToken']= $accessToken;
$instagram->setAccessToken(Yii::app()->session['InstagramAccessToken']);
$instagramUser=$instagram->getCurrentUser();
Yii::app()->session['InstagramUser'] = $instagramUser;
$userFeed = $instagram->getUserFeed();
$this->render('index', array('userFeed'=>$userFeed));
}
else
{
echo "Could not retrieve code variable";
}
}
我将包含当前用户的 instagram 个人资料数据的会话变量放入与另一个控制器关联的这个 php 页面中:
<?php
/* @var $this LoginController */
$this->pageTitle=Yii::app()->name . ' - Instagram Profile';
?>
<h1>Instagram Profile</h1>
<div class="row">
<div class="span3"><img src="<?php echo Yii::app()->session['InstagramUser']->profile_picture;?>"/></div>
<div class="span7">
<ul>
<li><b>username:</b><?php echo Yii::app()->session['InstagramUser']->username;?></li>
<li><b>full name:</b><?php echo Yii::app()->session['InstagramUser']->full_name;?></li>
<li><b>bio:</b><?php echo Yii::app()->session['InstagramUser']->bio;?></li>
<li><b>website:</b><?php echo Yii::app()->session['InstagramUser']->website;?></li>
<li><b>photos:</b><?php echo Yii::app()->session['InstagramUser']->counts->media;?></li>
<li><b>followers:</b><?php echo Yii::app()->session['InstagramUser']->counts->followed_by;?></li>
<li><b>follows:</b><?php echo Yii::app()->session['InstagramUser']->counts->follows;?></li>
</ul>
<?php echo var_dump(Yii::app()->session['InstagramUser']); ?>
</div>
来自子对象“计数”(media、followed_by、follows)的值不会显示,即使会话变量中的其余数据显示。我做了一个 Yii::app()->session['InstagramUser'] 的 var_dump,这就是我得到的:
object(stdClass)#22 (6) {
["username"]=> string(9) "mdailey77"
["bio"]=> string(36) "photographer and avid Photoshop user"
["website"]=> string(25) "http://www.mattdailey.net"
["profile_picture"]=> string(72) "http://images.instagram.com/profiles/profile_3586295_75sq_1345911013.jpg"
["full_name"]=> string(14) "Matthew Dailey"
["id"]=> string(7) "3586295" }
“counts”子对象应该出现在“id”之前。如何从“计数”子对象中获取要显示的值?在过去的三天里,我一直在为此苦恼,所以任何帮助将不胜感激。谢谢。
不确定这是否有帮助,但使用相同的端点 url 这是我使用 Instagram 自己的 API 控制台得到的响应:
{
"meta": {
"code": 200
},
"data": {
"username": "mdailey77",
"bio": "photographer and avid Photoshop user",
"website": "http://www.mattdailey.net",
"profile_picture": "http://images.instagram.com/profiles/profile_3586295_75sq_1345911013.jpg",
"full_name": "Matthew Dailey",
"counts": {
"media": 167,
"followed_by": 24,
"follows": 30
},
"id": "3586295"
}
}