0

このクエリを実行するためにFQLを使用しています

"SELECT post_id, actor_id, description, created_time, message, type, attachment FROM stream WHERE source_id = $page_id AND type > 0 LIMIT 0,9"

これは、使用されていない多くの情報を含む10個のアイテムを返し、次のようなものに分解するのに役立つヘルプとガイドラインが必要でした。

  {
    "image" : '...',
    "text" : '...',
    "username" : '...',
    "userurl" : '...',
    "userpic" : '...'
  }

誰かがJSONオブジェクトを再フォーマットするためのヒントを教えてもらえますか?

ありがとう

4

2 に答える 2

0

それは私にとって次のように機能します:

https://graph.facebook.com/fql?q=SELECT%20aid%2C%20owner%2C%20name%2C%20object_id%20FROM%20album%20WHERE%20aid%3D%2220531316728_324257%22
于 2013-02-21T05:27:48.610 に答える
0

自分で考えて、必要な変数を保持するための単純なPHPクラスを作成し、それを配列に追加しました。

ここに興味のある人のために、コードの主要な部分があります。

クラス:

class Item{
    public $image;
    public $link;
    public $text;
    public $username;
    public $userurl;
    public $userpic;
}

使用されています:

$feed = json_decode($feed);
        $data = array();
        foreach ($feed->data as $post){
            $item = new Item;
            if ($post->attachment->media){
                if (isset($post->attachment->media[0]->src)){
                    $item->image = $post->attachment->media[0]->src;
                }else if (isset($post->attachment->media[0]->photo->images[1]->src)){
                    $item->image = $post->attachment->media[0]->photo->images[1]->src;
                }else if (isset($post->attachment->media[0]->src)){
                    $item->image = $post->attachment->media[0]->src;
                }
                $item->link = $post->attachment->media[0]->href;
            }

            $reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
            $text = $post->message;
            if(preg_match($reg_exUrl, $text, $url)){
                $text = preg_replace($reg_exUrl, "<a href=\"".$url[0]."\" target=\"_blank\">".$url[0]."</a> ", $text);
            }
            $item->text = $text;
            $puser = number_format($post->actor_id,0,'','');
            $url = "https://graph.facebook.com/$puser?fields=picture,name,link&access_token=$at";
            $puser = file_get_contents($url);
            $puser = json_decode($puser);

            $item->userpic = $puser->picture->data->url;
            $item->username = $puser->name;
            $item->userurl = $puser->link;
            $item->platform = "facebook";
            $data[] = $item;
        }
        $this->response($data, 200);
    }

これが同じ状況で他の誰かに役立つことを願っています。

于 2013-02-21T15:39:59.367 に答える