我想在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應用程序中進行了更改。我仍然收到同樣的錯誤。
我該如何從這裏出發?
你的回答讓我做了一些更多的實驗。我無法在logInWithPublishPermissions()中指定「user_photos」權限,也不能在loginWithPublishPermissions()之前指定loginWithReadPermissions() - 即2個背靠背呼叫。我最終調用了logInWithReadPermissions(「user_photos」),並在onActivityResult()中調用logInWithPublishPermissions(「publish_actions」)。 –