我有一个Android应用程序与facebook sdk api集成,允许用户登录到Facebook并分享图片。我通过登录我的Facebook帐户(我的帐户是facebook应用程序的所有者)测试了我的Android应用程序,并且工作得很好。但如果我使用其他帐户(不是Facebook应用程序的所有者)登录,我将无法上传图片。我收到此错误;
12-04 13:35:33.484:I / FACEBOOK(20673):{HttpStatus:403,errorCode:200,errorType:OAuthException,errorMessage:(#200)Permissions error}
我用这种方式更新图片:
final ProgressDialog spinner = new ProgressDialog(this);
// Part 1: create callback to get URL of uploaded photo
Request.Callback uploadPhotoRequestCallback = new Request.Callback() {
@Override
public void onCompleted(Response response) {
String alert_title = "";
String alert_message = "";
if (response.getError() != null) {
Log.i("FACEBOOK", response.getError().toString());
alert_title = FullPics.this.getString(R.string.alert_error);
alert_message = FullPics.this
.getString(R.string.publish_pic_fail);
} else {
Object graphResponse = response.getGraphObject()
.getProperty("id");
if (graphResponse == null
|| !(graphResponse instanceof String)
|| TextUtils.isEmpty((String) graphResponse)) {
Log.d("FULL", "failed photo upload/no response");
alert_title = FullPics.this
.getString(R.string.alert_error);
alert_message = FullPics.this
.getString(R.string.publish_pic_fail);
} else {
alert_title = FullPics.this
.getString(R.string.alert_success);
alert_message = FullPics.this
.getString(R.string.publish_pic_success);
}
}
spinner.dismiss();
showMessage(alert_title, alert_message);
}
};
File image_file = fragmentAdapter.getCurrentImageFile(pager
.getCurrentItem());
Request request;
try {
spinner.setMessage(getString(R.string.publish_pic_in_progress));
spinner.setCancelable(false);
spinner.setCanceledOnTouchOutside(false);
spinner.setProgressStyle(ProgressDialog.STYLE_SPINNER);
spinner.show();
request = Request.newUploadPhotoRequest(
Session.openActiveSession(this, false, null), image_file,
uploadPhotoRequestCallback);
request.executeAsync();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
出了什么问题?也许我需要在我的应用程序内的Facebook开发者网站上设置一些东西?
答案 0 :(得分:0)
这种情况正在发生,因为您的Facebook应用程序仅供您使用。如果你在Facebook上观察你的应用程序会有一个小绿圈,如果你的api是私人的,它将被显示为禁用。
它应该公开并充满绿色。然后只有其他用户可以使用此应用程序。
访问https://developers.facebook.com/docs/games/bestpractice/managing-development-cycle?locale=en_GB了解详情
答案 1 :(得分:0)
根据新的facebook sdk,如果您要发布任何内容,则需要提交您的应用以供审核。 在Facebook批准后,您可以使用任何登录上传图片。 您可以查看此链接以查看审核流程
https://developers.facebook.com/docs/apps/review/
https://github.com/sauce/guide/wiki/Facebook' S-批准流程