2014-12-11 3 views
2

Facebook SDK를 다른 용도로 사용하고있는 응용 프로그램을 개발 중입니다. 현재 Facebook을 통한 로그인을 구현했습니다. 이제 내 다음 작업은 로그인 한 사용자의 모든 사진을 가져 와서 모두 격자에 표시하는 것입니다. 이 작업에 대한 참조로 공식 페이스 북 개발자 웹 사이트를 따라 가고 있습니다. 다음은 사용자 사진을 가져 오는 데 사용하는 코드입니다. 이 같은 여기Android에서 Facebook의 모든 사진을 가져 오는 방법

new Request(
      Session.getActiveSession(), 
      "/me/photos", 
      getRequestParameters(), 
      HttpMethod.GET, 
      new Request.Callback() { 
       public void onCompleted(Response response) { 
        /* handle the result */ 
        Log.d("Response ","Response " + response); 
        mpBar.setVisibility(View.GONE); 
       } 
      } 
     ).executeAsync(); 

private Bundle getRequestParameters() 
    { 
     String accessToken = LoginSigbUpCustomerNew.mytoken; 
      Bundle parameters = new Bundle(1); 
      parameters.putString("access_token", accessToken); 
      return parameters; 
    } 

, 내가 얻고 자 응답 : - 데이터 배열이 비어있는 이유

{Response: responseCode: 200, graphObject: GraphObject{graphObjectClass=GraphObject, state={"data":[]}}, error: null, isFromCache:false} 

가 이해하지 못할. 또한 사용자의 user_photos 권한을 요청하고 있습니다. 그래서 잘못 된 곳. 이 Facebook SDK를 처음 접했고이를 해결하는 방법을 모릅니다. 누구든지 나를 도울 수 있다면 그것은 좋을 것입니다.

미리 감사드립니다.

+0

안녕 살만,이 몇 가지 코드를 게시 할 수 있습니다. –

답변

1

사진을 요청하는 코드는 Facebook SDK의 문서에 따르면 문제가 없지만 로그인 한 사용자 (이 경우)의 권한을 요청하는 것을 잊어 버린 것 같습니다.

페이스 북 SDK 문서에서 복사 : A user access token with user_photos permission is required to see all photos that person is tagged in or has uploaded.

다음 링크는 당신에게 로그인 버튼에 액세스 토큰을 추가하는 방법에 대한 작은 튜토리얼 제공 : https://developers.facebook.com/docs/android/login-with-facebook/v2.2?locale=en_GB#step3이 경우

이 될 것를 (코드 조각입니다 활동 만 조각을 위해 :) 위의 URL을 클릭하고 예쁜 똑바로 앞으로이 자습서를 수행합니다.

... 
LoginButton authButton = (LoginButton) findViewById(R.id.ID_OF_YOUR_LOGIN_BUTTON); 
authButton.setReadPermissions(Arrays.asList("user_photos")); 
... 

당신의에서 onCreate 재정의하는 방법.


방법이 : 사용자가 아직 로그인하지 않은 경우

... 
Session session = Session.getActiveSession(); 
if (!session.isOpened() && !session.isClosed()) { 
    session.openForRead(new Session.OpenRequest(this) 
     .setPermissions(Arrays.asList("user_photos")) 
     .setCallback(YOUR_CALLBACK_CLASS_VARIABLE)); 
} else { 
    // Open an active session. Basically happens when someone is already logged in. 
} 
... 

모든 사용자의 사진을 요청하는 전화를하기 전에, 당신은 단순히 새로운 요청을 열 수 있습니다. 클래스의 Button 클래스에서 일어날 수 있습니다. 페이스 북의 LoginButton이 아닌 것처럼 보입니다.

YOUR_CALLBACK_CLASS_VARIABLE은 Session.StatusCallback을 구현하는 클래스입니다. 나는 당신이 그것이 무엇인지, 그것이 무엇인지를 확실히 알고 있습니다.


방법 세 : 사용자가 이미 (사용자가 로그인 한 후 이렇게 )에 기록됩니다

... 
    Session.NewPermissionsRequest newPermissionsRequest = new Session 
     .NewPermissionsRequest(this, Arrays.asList("user_photos")); 
    session.requestNewReadPermissions(newPermissionsRequest); 
... 

당신은에 액세스하기 위해 사용자로부터 추가 사용 권한을 요청하고자하는 그의 사진 또는 무엇이든. 이것은 모두 Android 용 Facebook SDK의 문서에 모두 기술되어 있습니다.

당신은 대한 액세스를 검사 할 수 있습니다 : 요청이 빈 결과를 반환 https://developers.facebook.com/docs/android/login-with-facebook/v2.2?locale=en_GB#step3

+0

헤이 @kevto 답변 주셔서 감사 합니다만 페이스 북 로그인에 로그인 버튼을 사용하고 있지 않습니다. 그럼 내가 어떻게 할 수 있니? –

+0

Hey @SalmanKhan 나는 당신이 원하는 것을 공범으로 삼는 방법에 대해 두 가지 더 많은 방법을 추가했다. – kevto

+0

감사합니다. @Ketvo, 내 하루를 저장합니다. 나는 이것을 시험해보고 어떤 문제가 있는지 알려 줄 것이다. –

관련 문제