0
 $fql = 'SELECT name,aid,photo_count,owner FROM album WHERE owner='.$userId;

 $fql = 'SELECT aid,owner,name FROM album WHERE owner IN 
          (SELECT uid1 FROM friend WHERE uid1 = 100002278102636 LIMIT 1 )';

codeigniter アプリケーションを使用して、現在の日付という名前のアルバムに写真をアップロードしています。アルバムの作成と他のすべてのアップロードは正常に機能していますが、所有者フィールドを使用してアルバム テーブルからアルバム名を選択しようとすると、空の配列が返されます。上記のクエリは、facebook テスト クエリ ウィジェットで正常に動作します

https://developers.facebook.com/tools/explorer?fql=SELECT%20aid%2Cowner%2Cname%20FROM%20album%20WHERE%20owner%3D100002278102636

私はこのようなAPIを使用しました

   $ret_obj1 = $this->facebook->api(array(
                                   'method' => 'fql.query',
                                   'query' => $fql,
                                 ));

私は何を間違っているのですか...事前に感謝します

4

2 に答える 2

0

$fql クエリを urlencode で実行してみましたか? Facebookのグラフエクスプローラーのものはエンコードされていますが、あなたのものはエンコードされていないことに気付くでしょう

  $ret_obj1 = $this->facebook->api(array(
                               'method' => 'fql.query',
                               'query' => urlencode($fql),
                             ));

余談ですが、このクエリは次のとおりです。

  $fql = 'SELECT aid,owner,name FROM album WHERE owner IN 
      (SELECT uid1 FROM friend WHERE uid1 = 100002278102636 LIMIT 1 )';

uid1 WHERE uid1 = 既知の値を選択していますか? やってみませんか

$fql = 'SELECT aid,owner,name FROM album WHERE owner = 100002278102636 )';
于 2012-08-16T12:01:50.143 に答える
0

私の推測では、これは許可の問題です。これらの結果を取得するには、ユーザーとして認証され、アクセス トークンにuser_photosとのアクセス許可が必要です。friends_photosそうしないと、FQL クエリは結果を返し、Facebook はその結果をアプリに渡す前に除外し、空のデータ セットを提供します。

もう 1 つの可能性は、アクセス トークンがユーザー 100002278102636 に属していないことです。その場合、friendサブクエリは失敗します。

album_object_idまた、代わりに now を使用する必要がありますaidaidフィールド (およびpid) は 11 月に削除されるようです。

于 2012-08-16T11:29:32.863 に答える