2015-06-29 25 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”)。 –