Facebook アプリログイン: 取得した画像 URL の有効期限を管理するにはどうすればいいですか? 質問する

Facebook アプリログイン: 取得した画像 URL の有効期限を管理するにはどうすればいいですか? 質問する

私は Facebook ログインを使用するアプリを開発しています。ログイン後、ユーザーは追加情報とプロフィール写真を設定する必要があります。写真はログインした Facebook アカウントから提供されます。これで、プロフィール写真の URL を含むアカウントの詳細全体がデータベースに保存されます。

驚いたことに、プロフィール写真が突然機能しなくなりました。ブラウザで URL を開くと、「URL 署名の有効期限が切れています」というメッセージが表示されます。

https://scontent.xx.fbcdn.net/hphotos-xpa1/v/t1.0-9/p720x720/10846350_10204966809307370_2779189783437306470_n.jpg?oh=245bbada6c23f280a1e531e724be85ed&oe=56894D69

これらの写真をダウンロードして自分のサーバーに保存することは、私にとっては現実的ではありません。その URL を永続的にするために何かできることはありますか?

ベストアンサー1

はい、Facebook の CDN URL は期限が切れる場合があります。長期間使用するために保存することは想定されていません。

しかし、グローバル/アプリスコープのユーザーIDを持っている限り、任意のユーザーのプロフィール写真をリクエストすることができます。

https://graph.facebook.com/4/picture // Mark Zuckerberg’s profile pic

– その URL は、画像の現在の CDN URL へのリダイレクトを発行します。

ただし、この画像は 50 x 50 ピクセルとかなり小さいので、 を使用してhttps://graph.facebook.com/4/picture?type=large大きいバージョンをリクエストできます。これにより、200 x 200 ピクセルのプロフィール画像が提供されます (ユーザーが正方形の画像をアップロードしていない場合は、それに近いサイズになります)。

一部の画像を取得するにはアクセス トークンが必要であることに注意してください。たとえば、https://graph.facebook.com/72256131540/picture次のようにアクセス トークンを追加しない限り、疑問符の一般的な画像が返されます。

https://graph.facebook.com/72256131540/picture?access_token=<ACCESS_TOKEN>

アップデート:

アプリスコープのユーザーIDでプロフィール写真をリクエストする場合は、問題なく同じように動作するはずです。古いグローバルユーザーIDまたはページスコープのユーザーIDでリクエストする場合は、アクセストークンを含める必要があります。https://developers.facebook.com/docs/graph-api/reference/user/picture#要件詳細が記載されています。

(アプリまたはページのアクセス トークンは、公開されたクライアント側コードで公開されるべきではないため、それらを使用する場合は、リクエストはサーバー側でのみ行う必要があります。)

おすすめ記事