0

FQL で現在の UID を取得する方法

"query1": GET NEED MY USERID "query2":"SELECT uid, first_name, last_name FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=MYUSERID) order by first_name"

私の友達を返す必要があります!friends.get でユーザーを取得してから users.getInfo を取得するには 2 つのリクエストが必要であり、最適ではありません...

ありがとうございました

4

2 に答える 2

4

Facebookは常にパラメーター(POSTまたはGET)uidを介してアプリケーションにを提供するため、最初のクエリは完全に不要です。他の形式の情報に基づいfb_sig_userて取得するために使用できるFQLクエリの種類がわかりません。uidFQLで使用できるテーブルなどはありませんsessions(使用可能なテーブルはここにリストされています)。

ただし、複数のクエリについては、このページで必要なことを正確に説明していると確信していますが、私が行う方法でいくつかのコードをまとめます。

これがPHPアプリであり、このサーバー側で実行したい場合は、JSON形式の文字列をいくつか作成し、次のようにクエリとして送信します。

$fql= '{
 "userinfo":"SELECT uid FROM user_standard_info WHERE first_name=\'zombat\'",
 "friends":"SELECT uid2 FROM friend WHERE uid1 IN (SELECT uid FROM #userinfo)}"
}';
$res = $facebook->api_client->fql_multiquery($fql);

print_r($res['userinfo']);
print_r($res['friends']);

これにより、クエリ結果のダンプが生成されます。

uidあなたがパラメータからあなたの現在の利用可能性を持っていると仮定するとfb_sig_user(あなたはそうすべきです)、あなたの問題は次のようなものによって解決されるべきです:

$fql= '{
 "friends":"SELECT uid2 FROM friend WHERE uid1='.$your_uid.',"
 "friendinfo":"SELECT * FROM standard_user_info WHERE uid IN (SELECT uid2 FROM #friends)"
}';
$res = $facebook->api_client->fql_multiquery($fql);

:実行しようとしているクエリのいくつかを注意深く確認することをお勧めします。などの多くのテーブルはfriend、ログインしているユーザーを扱っている場合にのみ使用できます。

于 2009-07-26T18:21:42.573 に答える
1

この関数me()は、ユーザー ID を FQL で返します。

友達のリストを取得するには、次を使用できます。

SELECT uid, first_name, last_name
FROM user
WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())

これに関するドキュメントはこちらにあります: http://developers.facebook.com/docs/reference/fql/

于 2011-02-10T10:32:07.933 に答える