我正在尝试通过循环获取帖子消息和ID,最终我会想获得帖子的喜欢,但我还没有,所以一步一步。
我正在获取我的页面名称,网址,图片,说明,粉丝和帖子。 然后我继续展示它们。 帖子显然是一个Stdclass对象,所以要大致显示它print_r的作用。
null
所以我尝试了一个循环
FacebookSession::setDefaultApplication('app','appsecret');
$session = FacebookSession::newAppSession();
$request = new FacebookRequest( $session, 'GET', '/myapp?fields=id,name,about,likes,link,,posts');
$response = $request->execute();
$content = $response->getGraphObject()->asArray();
?>
<h1><?= $content['name'] ?></h1>
<p><img src="http://graph.facebook.com/<?= $content['id'] ?>/picture?width=180&height=180" /></p>
<p>About: <?= $content['about'] ?></p>
<p>fans: <?= $content['likes'] ?></p>
<p>url: <?= $content['link'] ?></p>
<p>posts: <?= print_r($content['posts']) ?></p>
但是,我得到了id和message的未定义索引错误,虽然我粗略地知道了,但我还是无法解决它。
帖子上的print_r输出如下:
foreach($content['posts'] as $post){
echo $post['id'];
echo $post['message']
}
感谢您的帮助。
答案 0 :(得分:0)
弄清楚自己,但卡达斯也提供了正确的方法:
01112DE1 mov dword ptr [ebp-44h],eax
<Window x:Class="TestWs.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:TestWs"
mc:Ignorable="d"
Title="MainWindow" Height="467" Width="799" Background="#FF617EB0">
<Window.Resources>
<DataTemplate x:Key="DataTemplateItemDirect">
<StackPanel Orientation="Horizontal">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="60" ></ColumnDefinition>
<ColumnDefinition Width="120"></ColumnDefinition>
<ColumnDefinition Width="60"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding userid}" Grid.Column="0" Width="50"/>
<TextBlock Text="{Binding Name}" Grid.Column="1" Width="150"/>
<Image Source="{Binding PictureString}" Grid.Column="2" Name="ImageName" Height="15" Width="15" />
</Grid>
</StackPanel>
</DataTemplate>
</Window.Resources>
<Grid>
<DockPanel LastChildFill="True" >
<StackPanel Orientation="Horizontal" Height="40" Width="700" DockPanel.Dock="Top">
<Label Name="lbAddress" Height="30" Width="60" Content="Address:" Margin="10,0,0,0"></Label>
<TextBox Name="txtAddr" Width="350" Height="20" Text="ws://localhost:52804/WSHandler.ashx"></TextBox>
<Button Name="btConnect" Height="20" Width="80" Content="Connect" Margin="10,0,0,0" Click="btConnect_Click"></Button>
<Button Name="btDisconnect" Height="20" Width="80" Content="Disconnect" Margin="10,0,0,0" Click="btDisconnect_Click"></Button>
<!-- <Button Name="btLogin" Width="80" Height="20" Content="Logout" Margin="10,10,0,0" Click="btLogin_Click" VerticalAlignment="Top"></Button> -->
</StackPanel>
<StackPanel Orientation="Vertical" VerticalAlignment="Top" DockPanel.Dock="Left">
<Label Name="lbUser" Height="auto" Width="auto" Margin="5" Foreground="Black" FontWeight="Bold" FontFamily="Cambria"/>
<Button x:Name="btnChat" Width="100" Height="30" Content="Chat" Click="btnChat_Click" />
<Button x:Name="btnFileTransfer" Width="100" Height="30" Content="File Transfer" Click="btnFileTransfer_Click" />
<Button x:Name="button3" Width="100" Height="30" Content="Notification" Click="button3_Click"/>
<Button x:Name="button5" Width="100" Height="30" Content="Group Create" Click="button5_Click"/>
<Button x:Name="button6" Width="100" Height="30" Content="GPS Msg" Click="button6_Click"/>
<Button x:Name="button4" Width="100" Height="30" Content="Remove User" Click="button4_Click"/>
<!-- <Button x:Name="button7" Width="100" Height="30" Content="button" Click="button7_Click"/> -->
<!-- <Button x:Name="button8" Width="100" Height="30" Content="UserList" Click="button8_Click"/> -->
</StackPanel>
<DockPanel DockPanel.Dock="Right" Width="270" >
<StackPanel>
<Label x:Name="label" Content="Group" Height="30" DockPanel.Dock="Top" />
<!-- <ListBox x:Name="listBox" Height="100" Margin="5" DockPanel.Dock="Top" /> -->
<!-- <DataGrid x:Name="grdGroup" Width="250" Height="120" VerticalAlignment="Top" Margin="5" AutoGenerateColumns="False" SelectionChanged="grdGroup_SelectionChanged_1" IsReadOnly="True" SelectedValuePath ="GroupId" >
<DataGrid.Columns>
<DataGridTextColumn Header="Group ID" Binding="{Binding GroupId}"/>
<DataGridTextColumn Header="Group Name" Binding="{Binding GroupName}"/>
<DataGridTextColumn Header="ParentId" Binding="{Binding ParentId}"/>
<DataGridTextColumn Header="Group" Binding="{Binding subgrp}"/>
</DataGrid.Columns>
</DataGrid> -->
<ListBox Name="lbGroupList" Width="auto" Height="130" Margin="5" DockPanel.Dock="Right" SelectionChanged="lbGroupList_SelectionChanged" SelectedValuePath ="GroupId" >
<ListBox.Template>
<ControlTemplate>
<ScrollViewer>
<DockPanel LastChildFill="True" Background="White">
<Grid DockPanel.Dock="Top" Background="CadetBlue" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="60" ></ColumnDefinition>
<ColumnDefinition Width="90"></ColumnDefinition>
<ColumnDefinition Width="90"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Content="Group Id"></Label>
<Label Grid.Column="1" Content="Group Name"></Label>
<Label Grid.Column="2" Content="Group"></Label>
</Grid>
<ItemsPresenter></ItemsPresenter>
</DockPanel>
</ScrollViewer>
</ControlTemplate>
</ListBox.Template>
<ListBox.ItemTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" >
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="60" ></ColumnDefinition>
<ColumnDefinition Width="90"></ColumnDefinition>
<ColumnDefinition Width="90"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding GroupId}" Grid.Column="0" VerticalAlignment="Center" ></TextBlock>
<TextBlock Text="{Binding GroupName}" Grid.Column="1" VerticalAlignment="Center" ></TextBlock>
<TextBlock Text="{Binding subgrp}" Grid.Column="2" VerticalAlignment="Center"/>
</Grid>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Label x:Name="lblUser" Content="User" Height="30" DockPanel.Dock="Top" />
<ListBox x:Name="LstUserList" Height="130" Margin="5,0,5,0" DockPanel.Dock="Right" ItemTemplate="{DynamicResource DataTemplateItemDirect}" SelectionChanged="LstUserList_SelectionChanged_1" ItemsSource="{Binding UserDisplay}" IsSynchronizedWithCurrentItem="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="auto" >
<ListBox.Template>
<ControlTemplate>
<ScrollViewer>
<DockPanel LastChildFill="True" Background="White">
<Grid DockPanel.Dock="Top" Background="CadetBlue" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="60" ></ColumnDefinition>
<ColumnDefinition Width="130"></ColumnDefinition>
<ColumnDefinition Width="60"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Content="User Id"></Label>
<Label Grid.Column="1" Content="User Name"></Label>
<Label Grid.Column="2" Content="Status"></Label>
</Grid>
<ItemsPresenter></ItemsPresenter>
</DockPanel>
</ScrollViewer>
</ControlTemplate>
</ListBox.Template>
</ListBox>
<!-- <TextBox Name="txtRecivemessage" Margin="0,0,5,0" VerticalScrollBarVisibility="Auto" TextWrapping="Wrap" IsReadOnly="True" /> -->
<!-- <ListBox x:Name="lstUser" Margin="5"/> -->
<!--
<DataGrid x:Name="grdUsers" Height="121" Margin="5" SelectionChanged="grdUsers_SelectionChanged_1" AutoGenerateColumns="False" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Header="User ID" Binding="{Binding UserId}"/>
<DataGridTextColumn Header="User Name" Binding="{Binding UserName}"/>
<DataGridTextColumn Header="Status" Binding="{Binding StatusName}"/>
<DataGridTemplateColumn Header="delete">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Command="Delete" Content="Remove" Click="Button_Click_3"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid> -->
</StackPanel>
</DockPanel>
<StackPanel x:Name="stkUsrContainer" HorizontalAlignment="Center" >
<!-- <local:UctrlLogIn Width="400" Height="215" Loaded="UctrlLogIn_Loaded" /> -->
</StackPanel>
</DockPanel>
</Grid>
</Window>