无法上传图片到Facebook从Android应用程序与我不同的用户

时间:2014-12-04 12:39:11

标签: android facebook facebook-graph-api

我有一个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开发者网站上设置一些东西?

2 个答案:

答案 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-批准流程