如何使用 Graph Api 在 Android 上创建 FB 相册

How to create FB Album on Android using GraphApi

我正在尝试在 Android 应用程序上使用 GraphApi 创建 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 Developers site上转了一圈后,我发现FB审核必须给我的应用程序授予"publish_actions"权限,但我无法提交我的应用程序进行审核,因为FB 功能尚未 implemented/working。有一个选项可以为我的应用程序创建一个测试应用程序,我认为它会被授予 "publish_actions",而不必让 FB 审查该应用程序。测试应用程序有一个不同的 facebook_app_id,我在 Android 应用程序中对其进行了更改。我仍然遇到同样的错误。

我该如何从这里开始?

您在开发过程中无需提交审核 - 任何在应用程序中具有角色的用户 (admin/developer/tester) 都可以请求任何权限 而无需 事先审查。

并且创建相册需要 user_photos 权限。