我想在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”)。 –