2015-06-29 58 views
0

我想在Android應用上使用GraphApi創建一個FB相冊,下面是我的代碼片段來完成此操作。如何使用GraphApi在Android上創建FB相冊

GraphRequest createAlbum = new GraphRequest();         
createAlbum.setAccessToken(AccessToken.getCurrentAccessToken()); 
createAlbum.setHttpMethod(HttpMethod.POST); 
Bundle createAlbumParams = new Bundle(); 
createAlbumParams.putString("name", "Test_Album"); 
createAlbumParams.putString("message", "Test_Album_Description"); 
createAlbum.setParameters(createAlbumParams); 
createAlbum.setGraphPath(fbUserId + "/albums"); 
// createAlbum.setGraphPath("me/albums"); 
    createAlbum.setCallback(new GraphRequest.Callback() { 
     public void onCompleted(GraphResponse response) { 
     } 
    }); 
createAlbum.executeAsync(); 

返回的AccessToken具有「publish_actions」權限集。 fbUserId是我在「graph.facebook.com/me」路徑上使用GET方法時返回的有效FB userId。

我通過下面的代碼登錄到我的帳戶FB:

LoginManager.getInstance().registerCallback(mFbCallbackManager, mFbLoginCallback); 
LoginManager.getInstance().logInWithPublishPermissions(mActivity,Arrays.asList("publish_actions")); 

我總是在GraphRequest.Callback的GraphResponse對象身份驗證錯誤,如下圖所示:

{Response: responseCode: 400, graphObject: null, error: {HttpStatus: 400, errorCode: 10, errorType: OAuthException, errorMessage: (#10) Application does not have permission for this action}} 

戳後在FB開發人員網站上,我已經意識到必須通過FB審查將「publish_actions」權限授予我的應用程序,但我無法提交我的應用程序進行審閱,因爲FB功能尚未實施/正在運行。有一個選項可以爲我的應用程序創建一個測試應用程序,我認爲這個應用程序會授予它的「publish_actions」,而不必讓FB審查應用程序。測試應用程序有一個不同的facebook_app_id,我在我的Android應用程序中進行了更改。我仍然收到同樣的錯誤。

我該如何從這裏出發?

回答

1

您不需要在開發過程中提交審查 - 任何具有應用程序角色的用戶(admin/developer/tester)都可以被要求獲得的許可,而無需事先審查。

並且創建相冊需要user_photos權限。

+0

你的回答讓我做了一些更多的實驗。我無法在logInWithPublishPermissions()中指定「user_photos」權限,也不能在loginWithPublishPermissions()之前指定loginWithReadPermissions() - 即2個背靠背呼叫。我最終調用了logInWithReadPermissions(「user_photos」),並在onActivityResult()中調用logInWithPublishPermissions(「publish_actions」)。 –