以前以下の記事を投稿しました。
いやー Facebook + PowerShell 面白いですね。というか、Facebook の API が面白くてたまりません。
さて、Facebook を使っていて一番気になるのは、
「僕は彼女と友達だけど、あいつと彼女はどうだろう?」
ということです。間違いありません。
気になる二人が Facebook 上で友達かどうかを確認するには、以下のような FQL(Facebook Query Language)を使用します。
Select uid1,uid2 From friend Where uid1 = ”<1人目のUID>” AND uid2 = “<2人目のUID>”
例えば、「私」と私の上司である「長坂」が友達かどうかを確認するには、クエリーを以下のように書きます。
Select uid1,uid2 From friend Where uid1 = ”721589565” AND uid2 = “100001127441425”
ここで、721589565 は私の UID で、100001127441425 は長坂の UID です。
実行すると、以下の通りです。
PS C:\> $Query = "Select uid1,uid2 From friend Where uid1 = '721589565' AND uid2 = '100001127441425'" PS C:\> $(Get-FBConnection).query( $Query )
Key Value --- ----- uid1 721589565 uid2 100001127441425
結果が返されたときには「二人は友達である」ということです。
例えば、著名なとある有名人(UID='100002120034593')とは当然友達ではないので、同じスクリプトを実行しても何も戻りません。
UID を知るには、ユーザーのウォールを参照したときに表示される id=xxxxxxxxx の部分を参照します。UID の桁数は Facebook に参加した時期によって異なります。
一方、長坂のページを見てみると、以下のように UID ではなく「kazunorn」という Username が使われています。
Username では friend テーブルは検索することができません。friend テーブルには username が含まれていないからです。そんなときは、Username から uid を引っ張ってくる必要があります。
そのためには、以下のようなクエリーを実行して user テーブルを検索します。
Select uid From user Where username='kazunorn'
PS C:\> $Query = "Select uid From user Where username='kazunorn'" PS C:\> $(Get-FBConnection).query( $Query )
Key Value --- ----- uid 100001127441425
いかがでしょう?楽しくて仕方ないですね。
WMI(Windows Management Instrumentation)と出会った時のように楽しいです。
こんな投稿、まだまだ続きます。