2

Facebook に接続するアプリ (Flash/AS3) を開発しています。ユーザーがログインしたら、彼の友達リストを取得する必要があります (ID のみ)。それらのいずれかが私のアプリのユーザーであるかどうかを確認し (データベースのレジストリを介して)、すべてのユーザーにフラグを追加してリストを更新します。アプリのユーザーであり、更新されたリストを操作します。私の質問は:

  • アプリの起動時に、フレンド リストを要求し、チェックを実行してデータを Flash に取得する必要がありますか? Facebook からの応答と、スクリプト (php) を実行する時間を待つ必要があります。アプリのユーザー情報を含むテーブルは 1 つしかありません。

また

  • ユーザーのすべての友達を自分のデータベースに保持し、データベースを自動的に更新する(おそらく毎日1回)cronジョブを用意する必要があります。つまり、アプリユーザーの友達リストごとに確認し、チェックを実行し、重複を削除します。など?この場合、アプリのユーザーを含むテーブル、すべてのユーザーの友人 (もちろん数千人になる可能性があります) を含むテーブル、および前の両方のテーブルを関連付ける user_friends テーブルを作成します。

注: - PHP/cURL を使用して、Graph API へのリクエストを作成しています - MySQl データベース - おそらく、すべてのユーザーの Twitter と G+ の友達もチェックする予定です (そのため、スクリプトにはさらに時間がかかる可能性があります。別々のステップで各ネットワーク)

最善のアプローチは何だと思いますか? アプリケーションに「ロード」期間があってもかまいません。この時点で、最初のアプローチはほぼ完了していますが、アプリ ユーザーが Facebook/Twitter/G+/script の応答を待つ必要がないように、同僚が 2 番目のアプローチを提案しました。でも・・・資源の無駄じゃないですか?つまり、Facebookなどにはすでにユーザー/友人の接続があります...それを自分のDBに複製し、cronジョブでアプリのユーザーから隠された更新を行うことで何かを得られるでしょうか?

私が自分自身を明確にしたことを願っています!ありがとう!

4

1 に答える 1

2

私はかつて同様の問題に直面しました。通常、そのユーザーのフレンド リストを取得するにはアクティブなユーザー (=アクセス トークン) が必要なため、定期的にデータベースを更新することはできません。以前は、「offline_access」の許可を求めることができましたが、この許可は廃止されました: https://developers.facebook.com/roadmap/offline-access-removal/

アプリの最初の起動時に、すべての友達の ID をサーバー上のテキストファイル (ファイル名としてのユーザー ID: 123456789.txt) に書き込むことにしました (スピナーと「友達を読み込んでいます...」というテキストを表示します)。その後アプリを起動するたびに、そのファイルから ID を取り出しました。

そのファイルの作成日を確認することで、そのファイルの更新をトリガーできます。「古すぎる」場合は、すべてのフレンド ID を読み取った後、削除して再作成します。そうすれば、ファイル キャッシュはバックグラウンドで作成され、ユーザーには気付かれません。

于 2012-04-04T14:19:40.163 に答える