0

私の iOS アプリは、Twitter でのログインをサポートする小さなソーシャル ネットワークです。機能の一部として、Twitter のユーザー写真にアクセスする必要があります。たとえば、ユーザー プロファイルや通知/投稿の横に表示します。

twitter API 1.0 は最近廃止されたため、v1.1 を使用する必要があります。API 1.0 では、userpic を取得するのは非常に簡単でした。画像の URL を返す 1 つの API 呼び出しです。
これで、twitter の userpic が必要になるたびに、APP キーとシークレットで認証し、ユーザー情報を含む大きな JSON を取得し、そこからプロファイル画像の URL を選択するというルートに従います。

問題は、API 呼び出しの制限に達したことです。v1.0では発生しませんでした。それに取り組むための最良の解決策は何だと思いますか?私はいくつか考えることができます:

  • ディスク キャッシュを使用します (各 iOS デバイスでイメージをキャッシュします)。現在の実装では、画像 URL をキーにして画像をキャッシュします。これは、Twitter API の制限にカウントされないため、ユーザー名をキーにして画像をキャッシュするように作り直すことができます。
  • バックエンドの userpic へのキャッシュ リンク (parse.com を使用)
  • 画像自体をバックエンドにキャッシュする
  • Twitter にプロファイル URL を要求するロジックを何らかの方法で最適化します <- これは、大幅なコードの作り直しを必要としないため、推奨されます。

Q1: あなたの意見では、最善の解決策は何ですか?
Q2: クォータに達することなく、ユーザーの pic へのリンクについて Twitter にクエリを実行する方法はありますか?

ありがとう、
ダン

4

1 に答える 1

0

これは次の方法で解決されました。

  1. SDWebImage ライブラリの一部である SDImageCache によるローカル (デバイス上) キャッシング。
  2. parse.com DB (バックエンド) での Twitter userpic へのリンクのキャッシュ。
  3. ユーザーの写真へのリンクが利用できない場合は、そのリンクのために Twitter REST API が要求されています。

2 番目のステップは、ケースを処理するために追加されます。たとえば、新しいユーザーが twitter でログインし、twitter からユーザーの写真を取得する必要があります。そのユーザーがフィードに何かを投稿し、多くの人が彼の投稿を開いたときに、クォータ制限のために Twitter が要求を拒否することを望みません。Twitter API への最初のリクエスト時に、リンクが DB に保存されます。

それが誰かに役立つことを願っています。

乾杯、
ダン。

于 2013-06-19T21:15:58.897 に答える