我希望通过Facebook API-PHP列出facebook消息。 我用php写了一段代码,ı写了代码;
// Facebook App Connection
$facebook = new Facebook(array(
'appId' => 'xxxxxxxxxxxx',
'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxx',
));
$user = $facebook->getUser();
if($user) {
try
{
$params = array(
'fields' => 'inbox',
);
$user_profile = $facebook->api('/me',$params);
}
catch (FacebookApiException $e)
{
error_log($e);
$user = null;
}
}
print_r($user_profile);
/* Output:
Array
(
[id] => xxxxxxxxxx
[inbox] => Array
(
[data] => Array
(
[0] => Array
(
[id] => xxxxxxxxxxxxxx
[to] => Array
(
[data] => Array
(
[0] => Array
(
[name] => John Doe
[id] => xxxxxxxxxx
)
[1] => Array
(
[name] => Jane Doe
[id] => xxxxxxxxxx
)
)
)
[updated_time] => 2013-01-13T21:33:34+0000
[unread] => 2
[unseen] => 1
[comments] => Array
(
[data] => Array
(
[0] => Array
(
[id] => xxxxxxxxxxxxxx_xxxx
[from] => Array
(
[name] => Jane Doe
[id] => xxxxxxxxxx
)
[message] => Hi!
[created_time] => 2013-01-13T19:15:49+0000
)
[1] => Array
(
[id] => xxxxxxxxxxxxxx_xxxx
[from] => Array
(
[name] => John Doe
[id] => xxxxxxxxxx
)
[message] => Hi,How are you?
[created_time] => 2013-01-13T19:15:54+0000
)
[2] => Array
(
[id] => xxxxxxxxxxxxxx_xxxx
[from] => Array
(
[name] => Jane Doe
[id] => xxxxxxxxxx
)
[message] => Fine but have a problem facebook api
[created_time] => 2013-01-13T19:16:03+0000
)
[3] => Array
(
[id] => xxxxxxxxxxxxxx_xxxx
[from] => Array
(
[name] => John Doe
[id] => xxxxxxxxxx
)
[message] => what problem?
[created_time] => 2013-01-13T19:16:25+0000
)
[4] => Array
(
[id] => xxxxxxxxxxxxxx_xxxx
[from] => Array
(
[name] => Jane Doe
[id] => xxxxxxxxxx
)
[message] => not list all messages in inbox
[created_time] => 2013-01-13T21:04:37+0000
)
[5] => Array
(
[id] => xxxxxxxxxxxxxx_xxxx
[from] => Array
(
[name] => John Doe
[id] => xxxxxxxxxx
)
[message] => I can't help
[created_time] => 2013-01-13T21:04:40+0000
)
.bla
.bla
.bla
.bla
.bla
.bla
[24] => Array
(
[id] => xxxxxxxxxxxxxx_xxxx
[from] => Array
(
[name] => John Doe
[id] => xxxxxxxxxx
)
[message] => Okey,bye
[created_time] => 2013-01-13T21:33:34+0000
)
)
[paging] => Array
(
[previous] => https://graph.facebook.com/377285305670598/comments?limit=25&since=1358112814&__paging_token=377285305670598_2394&__previous=1
[next] => https://graph.facebook.com/377285305670598/comments?limit=25&until=1358104549&__paging_token=377285305670598_2370
)
)
)
*/
我想输出;
简·多伊:嗨!
John Doe:嗨,你好吗?
Jane Doe:很好,但有一个问题facebook api
John Doe:有什么问题?
Jane Doe:未列出收件箱中的所有邮件
John Doe:我忍不住了
John Doe:Okey,再见
我写了代码;
for($i=0; $i <= 5; $i++){
foreach($data as $a):
foreach($a[$i] as $id => $to):
foreach($to as $data):
foreach($data as $key => $value):
echo $value["name"]."=>".$value["message"];
endforeach;
endforeach;
endforeach;
endforeach;
endforeach;
echo "<br/>";
我的结果;
Jane Doe =&gt;
John Doe =&gt;
=&GT;!您好
=&gt;嗨,你好吗?
=&gt;很好,但有问题facebook api
=&gt;有什么问题?
=&gt;未列出收件箱中的所有邮件
=&gt;我忍不住了
... BLA
... BLA
... BLA
=&gt;我忍不住了
H =&GT; H
H =&GT; H
我想查看所有邮件和发件人姓名。我试过了;
1-获取下一个url和file_get_content($ url); - 不工作。
2-确定限制和偏移 - 不工作
如何编写代码?
答案 0 :(得分:0)
我认为这就是你想要的。
foreach($user_profile as $main){
foreach($main as $a){
foreach($a as $b){
foreach($b as $c){
foreach($c as $d){
foreach($d as $e){
if(strlen($e["name"]) > 1){
echo "<b>".$e["name"].":</b>";
}
}
echo $d["message"]."</br>\n";
}
}
}
}
}
答案 1 :(得分:0)
这会对你有帮助。
<h1>Inbox Start</h1>
<?php
$inbox = $user_profile["inbox"]["data"];
foreach ($inbox as $data){ ?>
<h3>To: </h3>
<?php
foreach ($data["to"]["data"] as $to){
?>
<a href="http://www.facebook.com/<?php echo $to["id"]?>" target="_blank"><?php echo $to["name"]?></a>
<?php
}
?>
<h3>Last Reply: </h3>
<?php echo date("d M, Y H:i:s",strtotime($data["updated_time"]))?>
<h3>Message Read: </h3>
<?php if($data["unread"]==1){ echo "Unread";}else { echo "Read";}?>
<h3>Message Seen: </h3>
<?php if($data["unseen"]==1){ echo "Unseen";}else { echo "Seen";}?>
<h3>Comment: </h3>
<?php
$comments = $data["comments"]["data"];
foreach ($comments as $comment){
?>
<div>
<div style="float:left; width:50px;">
<img src="https://graph.facebook.com/<?php echo $comment['from']['id']?>/picture?width=50&height=50" />
</div>
<div style="float:left; margin-left:10px;">
<strong style="color: #AF2D2D;"> <?php echo $comment['from']['name']?></strong> <br />
<p style="color: gray !important;"><?php echo date("d M, Y H:i:s",strtotime($comment["created_time"]));?></p>
</div>
<div style="clear:both; margin-bottom:10px;"></div>
<div style="width:500px; color: #AF2D2D;">
<?php echo $comment['message'] ?>
</div>
</div>
<?php
}
?>
<hr><bR>
<?php
}
?>