使用php分页的Facebook API列表收件箱

时间:2013-01-13 22:17:19

标签: php facebook api list inbox

我希望通过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-确定限制和偏移 - 不工作
如何编写代码?

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> &nbsp; 
        <?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   
    }
  ?>