0

私は非営利団体の意識向上キャンペーンに取り組んでいます。非営利団体のFacebookページに看板を持っている写真をアップロードしてもらいます。タイムラインにはっきりと表示されないため、これらの写真を削って非営利団体のウェブサイトのページに表示したいと思います。

すべての写真を取得するのは簡単です。私はそれらを取得するために次のFQLを使用しています:

SELECT post_id, actor_id, message, attachment, place, created_time 
  FROM stream WHERE source_id = PAGE_ID and source_id <> actor_id 
      AND attachment.media <> '' AND created_time > 1338834720 
  LIMIT 50

問題は、このギャラリーで紹介したくない他の写真がWebサイトにアップロードされていることです。私がやりたいのは、この結果セットをさらにフィルタリングして、ページまたはページ管理者が高く評価またはコメントした写真のみを取得するようにすることです。これは私が立ち往生しているところです。

これをマルチクエリに変換し、上記のクエリの結果を次のようにフィードすると、次のようになります。

SELECT post_id FROM like WHERE user_id = PAGE_ID AND post_id IN (SELECT post_id FROM #query1)

ログインしたユーザーのようにしかクエリできないOAuthエラーが発生します。これは、PHPSDKを使用してアプリとして認証する場合でも発生します。

投稿時にメッセージにテキスト文字列を追加してもらうようにしましたが、それは実現していません。一部の人々は、非営利団体が望まない写真にその文字列を追加しており、非営利団体の目には最高の写真にはその文字列が含まれていません。

ご協力いただきありがとうございます。

4

2 に答える 2

1

わかりました、私自身の質問に答えました。

PHP SDK 経由でこの FQL マルチクエリを使用して、厳選された写真のグループを取得しています。私は、任意のページの管理者になったコメントに落ち着きました。

  {
  'activity': 
     "SELECT post_id FROM stream WHERE source_id = PAGE_ID 
      AND attachment.fb_object_type = 'photo' AND created_time > 1338834720 
      AND comments.count > 0 LIMIT 100",
  'commented':
     "SELECT post_id, text, fromid FROM comment 
      WHERE post_id IN (SELECT post_id FROM #activity) 
      AND fromid IN (SELECT uid FROM page_admin WHERE page_id = PAGE_ID)", 
   'accepted':
      "SELECT post_id, actor_id, message, attachment, place, created_time, likes 
       FROM stream WHERE post_id IN (SELECT post_id FROM #commented) 
       ORDER BY likes.count", 
    'images': 
      "SELECT pid, src, src_big, src_small, src_width, src_height FROM photo 
       WHERE pid IN (SELECT attachment.media.photo.pid FROM #accepted)",
    'users':
       "SELECT name, uid, current_location, locale FROM user 
        WHERE uid IN (SELECT actor_id FROM #accepted)",
     'pages':
       "SELECT name, page_id FROM page 
        WHERE page_id IN (SELECT actor_id FROM #accepted)",
     'places': 
       "SELECT name, page_id, description, display_subtext, latitude, longitude 
        FROM place WHERE page_id IN (SELECT place FROM #accepted)"
     }

ライブサイトはこちら: http://getwellgabby.org/show-us-a-sign . 結果を結合し、写真表示に ThickBox を使用するためのバックエンドでの PHP の多く。

于 2012-06-07T21:46:03.523 に答える
0

クエリをBatch Requestsとして実行してみてください。そこでクエリに「名前を付ける」ことで、他のクエリでその結果を参照したり、個々の操作ごとに異なるアクセス トークンを指定したりできます。

于 2012-06-07T21:48:47.440 に答える