2013-01-18 56 views
3

我正在使用facebook android sdk訪問用戶的facebook相冊,並獲得實習生照片。 但是當我做一個"https://graph.facebook.com/"+wallAlbumID+"/photos?access_token="+facebook.getAccessToken()它返回空白數據。 { "data": [] }在Android中如何添加user_photos權限以獲取facebook相冊照片?

我讀in stackoverflow questionin Graph API for Photo,我需要給user_photos權限在創建Facebook的對象。 我不知道該怎麼做。我讀了很多論壇,也檢查了SOF,但找不到解決方案。

這是我正在創建一個Facebook對象

facebook = new Facebook(APP_ID); 

任何人都可以請幫我這。

回答

2

您需要創建要訪問的權限ArrayList。例如,當我這樣做時,在聲明變量時。

private static final String[] PERMISSIONS = { "user_photos" }; 

然後,實現用戶登錄區時:

if (!facebook.isSessionValid()) { 
    facebook.authorize(this, PERMISSIONS, new LoginDialogListener()); 
} 

希望這有助於!

+0

非常感謝您的回覆。但我現在得到的錯誤'{ 「錯誤」:{ 「消息」: 「格式不正確的訪問令牌AAAEAVpwLuvUBAMeXhXSNPr8TcuUA6DVspgM4ZA9tnJRKfgdvZA6ZAF8g1BZB3xXyzE7MnSh0cA6m1ulO7FgdZCwo9KhbEtc2udXws1wKAmAZDZD的access_token = AAAEAVpwLuvUBAMeXhXSNPr8TcuUA6DVspgM4ZA9tnJRKfgdvZA6ZAF8g1BZB3xXyzE7MnSh0cA6m1ulO7FgdZCwo9KhbEtc2udXws1wKAmAZDZD?」, 「類型」: 「OAuthException」, 「代碼」:190}}'同時創造了Facebook的實例我們應該提供哪個APP_ID? – namrathu1

+0

@Namratha在Facebook開發人員網站上創建應用程序時,您應該已獲得應用程序ID。您使用該應用程序ID來創建Facebook對象。 – RobStemen

+0

@ CreatineDevelopment:謝謝,我做到了。但我仍然繼續得到錯誤。我已經把它作爲一個不同的問題發佈在SOF [這裏](http://stackoverflow.com/questions/14409685/getting-a-malformed-access-token-t-y​​peoauthexception-code190)。再次感謝你的幫助。 – namrathu1

2

您需要使用Facebook SDK 3.0+。另外,在FB站點的開發人員設置中啓用OAuth客戶端登錄流程。然後你可以使用下面的代碼:

  1. 首先,用戶登錄到FB你的應用程序內獲得一個Session對象,然後請求user_photos權限,如果沒有授予:

    // start Facebook Login 
    Session.openActiveSession(this, true, new Session.StatusCallback() { 
    
        // callback when session changes state 
        @Override 
        public void call(Session session, SessionState state, Exception exception) { 
         if (session.isOpened()) { 
          // check for permission to see user photos 
          if (!hasPhotoPermissions()) 
           session.requestNewPublishPermissions(new Session.NewPermissionsRequest(MyActivity.this, "user_photos")); 
    
          else { 
           // photos permission granted, fetch user's albums 
           fetchAlbumsFromFB(session); 
          } 
         } 
        } 
    }); 
    
  2. 以下是hasPhotoPermissions()方法是這樣的:

    private boolean hasPhotoPermissions() { 
        Session session = Session.getActiveSession(); 
        return session.getPermissions().contains("user_photos"); 
    } 
    
  3. 您的應用則呈現PHO將權限屏幕提供給用戶進行審批。

相關問題