14

私のアプリでは、Picasso ライブラリを使用して URL から画像を読み込みます。それはうまく機能し、簡単にインポート可能で使用可能なライブラリであり、必要なことを実行するだけです.

ただし、今日は動作を停止しました。開発中ではなく、コンパイルされたapkでの動作が停止しました。

そのため、理由を検索して検索した後、このバグのあるものを見つけました:

Facebook グラフの URL を使用してプロフィール写真を読み込みます。

これは次のようなものです: profile pictre ,

リンクは実際には「http://graph.facebook.com/1464090949/picture?type=large」です

しかし、次のようにリダイレクトしています: https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn1/t5.0-1/572518_1464090949_1222130273_n.jpg

もちろん、両方の URL 呼び出しがブラウザーで機能し、プロフィール写真を見ることができます。

ただし、ピカソで両方のリンクをテストすると:

    ImageView iv = (ImageView)findViewById(R.id.imageView1);

    //Url1 NOT working, loads nothing.
    String url1 = "http://graph.facebook.com/1464090949/picture?type=large";

    //Url2 is the same as URL1, i just copied it from a browser, and this is working
    String url2 = "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn1/t5.0-1/572518_1464090949_1222130273_n.jpg";


    Picasso.with(this).load(url2).into(iv);

結論として、Facebook が何かを変更した可能性があり、今後 Picasso はグラフから画像を読み込めません。

これを機能させるために誰かが私に何かを提案できますか? もちろん、別のライブラリを試すこともできますが、他の方法があれば本当にうれしいです。

4

3 に答える 3

43

回避策 1:

httpからhttpsに変更します。

作業: https://graph.facebook.com/1464090949/picture?type=large

機能しない: http://graph.facebook.com/1464090949/picture?type=large

回避策 2:

このトピックに関する解決策が見つかりました。

たとえば、必要な場合: http://graph.facebook.com/1464090949/picture?type=large

使用できるこのプロフィール写真:

https://graph.facebook.com/1464090949/?fields=picture.type(大)

JSON オブジェクトを返します。

   {
   "id": "1464090949",
   "picture": {
      "data": {
         "url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn1/t5.0-1/572518_1464090949_1222130273_n.jpg",
         "is_silhouette": false
      }
   }
}

そしてタダ!そこにそれがある。url のキーは、画像の読み込みに使用できるリダイレクトされた URL です。

(これには、私がテストしていない oAuth が必要です。回避策 1 に固執してください)

于 2014-03-27T11:06:27.613 に答える