1

私は、ユーザーが自分の電子メール アカウント (Facebook のように) を使用して友人を招待できる Web アプリケーションを構築しようとしています。ユーザーがアプリでパスワードを入力する必要がないように、OAuth を使用します。問題は、Yahoo ソーシャル テーブルから連絡先の名前と電子メール アドレスを取得するための正しい YQL クエリを理解できず、Facebook の [友達を探す] 機能で同じ結果を達成できないことです。

最初はこれを使用しました:

SELECT * FROM social.contacts(0, 500) WHERE guid=me

このクエリで、現在ログインしているユーザーのすべての連絡先を一度に取得できることを願っています。しかし、メール フィールドを持つレコードのみを解析して選択した後、結果リストは、Facebook の [友達を探す] を使用している場合よりもはるかに少なくなります。個人データへのアクセス許可を付与するときに Yahoo 承認ページに表示されるように、Facebook は Contacts テーブルだけでなく Profile テーブルも使用していると思います。

では、これら 2 つのテーブルを使用して、すべての連絡先名と電子メール アドレスを取得するための正しい YQL クエリは何でしょうか?

4

1 に答える 1

3

いくつかのテストを試みた後、Yahoo の連絡先から電子メール アドレスをインポートすると、連絡先に電子メール フィールドがない場合に Facebook が自動的に連絡先の電子メール アドレスを推測し@yahoo.com、yahooid フィールドに追加することがわかりました。私が見るように、これは完全に間違っています。yahooid の場合、"john123" と言うと、関連付けられたメールにはjohn123@yahoo.co.ukjohn123@yahoo.com.vnなどの国際ドメインが含まれる場合があります。

Yahoo の連絡先リストに友人がいます。@yahoo.com.vn彼は、電子メール アドレスに関連付けられた yahooid を持っています。Yahoo の連絡先を Facebook にインポートする前に、彼の連絡先エントリにメール フィールドがなく、名前と yahooid フィールドだけがあることを確認しました。Facebook にインポートした後、Facebook は友人のメール アドレスを@yahoo.comメールとして認識します。もちろん、Facebookの招待メールは彼には届きません。

したがって、私の質問に対する答えは次のとおりです。私の YQL には何の問題もありません。Facebook は私よりも多くのメール アドレスを取得できますが、その多くは正しくありません。

于 2011-04-10T09:31:18.570 に答える