如何使用GraphApi

时间:2015-06-29 08:24:25

标签: android facebook facebook-graph-api facebook-sdk-4.0

我正在尝试在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开发者网站上闲聊之后,我意识到" publish_actions"必须通过FB审核授予我的应用程序权限,但我无法提交我的应用程序以供审核,因为FB功能尚未实施/工作。有一个选项可以为我的应用程序创建一个测试应用程序,我认为它将具有" publish_actions"授权给它,而不必让FB审查应用程序。测试应用程序有一个不同的facebook_app_id,我在我的Android应用程序中进行了更改。我仍然遇到同样的错误。

我如何从这里开始?

1 个答案:

答案 0 :(得分:1)

您在开发过程中无需提交审核 - 任何在应用中具有角色的用户(管理员/开发人员/测试人员)都可以在未经事先审核的情况下被要求获得的任何权限。< / p>

创建相册需要user_photos权限。