2015-09-01 5 views
0

Я хочу выбрать обложку для обоев для использования в приложении для Android. Я еще не получил никаких дополнительных разрешений от Facebook, кроме открытого доступа к профилю.Facebook Graph API не возвращает null для обложки фото

Вот код, который я использую прямо сейчас, пожалуйста, скажите мне, где я ошибаюсь. В настоящее время он возвращает нулевое значение.

String URL = "https://graph.facebook.com/" + THE_USER_ID + "?fields=cover&access_token=" + Utility.mFacebook.getAccessToken(); 

String finalCoverPhoto; 

try { 

    HttpClient hc = new DefaultHttpClient(); 
    HttpGet get = new HttpGet(URL); 
    HttpResponse rp = hc.execute(get); 

    if (rp.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { 
     String result = EntityUtils.toString(rp.getEntity()); 

     JSONObject JODetails = new JSONObject(result); 

     if (JODetails.has("cover")) { 
      String getInitialCover = JODetails.getString("cover"); 

      if (getInitialCover.equals("null")) { 
       finalCoverPhoto = null; 
     } else { 
      JSONObject JOCover = JODetails.optJSONObject("cover"); 

      if (JOCover.has("source")) { 
       finalCoverPhoto = JOCover.getString("source"); 
      } else { 
       finalCoverPhoto = null; 
      } 
     } 
    } else { 
     finalCoverPhoto = null; 
    } 
} catch (Exception e) { 
    // TODO: handle exception 
} 

ответ

0

Вот мой код, который я использовал для съемки обложки.

Использовать GraphRequest вместо DefaultHttpClient.

Bundle params = new Bundle(); 
      params.putString("fields", "cover"); 
      new GraphRequest(token, 
        "me", 
        params, 
        HttpMethod.GET, 
        new GraphRequest.Callback() { 
         @Override 
         public void onCompleted(GraphResponse response) { 
          if (response != null) { 
           try { 
            JSONObject data = response.getJSONObject(); 

            if (data.has("cover")) { 
             String coverPicUrl = data.getJSONObject("cover").getString("source"); 
            } 

           } catch (Exception e) { 
            e.printStackTrace(); 
           } 
          } 
         } 
        }).executeAsync(); 

Проверьте, если у вас есть значение coverPicUrl.

Надеюсь, это поможет!

Смежные вопросы