0

我的 Android 应用程序中有一个位图图像,我需要将其上传到登录用户的墙上,包括一条标题消息。

我已经实现了(应该)设置会话的登录按钮,并且在检查之后session.isOpened(),我调用了方法newUploadPhotoRequest(session, image, callback)

问题是图片永远不会上传。显然,登录有效,因为 session.isOpened() 在用户单击登录按钮后返回 true。这意味着 API 密钥、调试/发布密钥哈希和所有这些东西都是正确的。

相反,上传方法的回调返回此响应:

{Response:  responseCode: 200, graphObject: null, error: {HttpStatus: -1, errorCode: -1, errorType: null, errorMessage: null}, isFromCache:false}

FacebookActivity以下:应上传位图的 Activity(称为 )背后的代码片段。

private void startSending() {
    ((LinearLayout)findViewById(R.id.LoginLayout)).setVisibility(View.INVISIBLE);
    ((LinearLayout)findViewById(R.id.SendingLayout)).setVisibility(View.VISIBLE);

    Request photoRequest = Request.newUploadPhotoRequest(Session.getActiveSession(), picture, new Request.Callback() {
        @Override
        public void onCompleted(Response response) {
            Toast toast;
            if(response.getError() == null) {
                toast = Toast.makeText(getApplicationContext(), getString(R.string.ask_facebook_sent), Toast.LENGTH_LONG);
            }
            else {
                // ERROR!
                toast = Toast.makeText(getApplicationContext(), "Error! " + response.toString(), Toast.LENGTH_LONG);
            }

            toast.show();
            finish();
        }
    });

    Bundle requestParams = photoRequest.getParameters();
    requestParams.putString("message", message);
    photoRequest.setParameters(requestParams);
    Request.executeBatchAsync(photoRequest);
}

一些考虑:

  • 图片有效且可见
  • Facebook SDK 为最新版本 (3.0.2)
  • 我正在使用 API 级别 8 的真实设备
  • 在 Facebook Dev 的应用程序页面中,我这样设置字段:
    • 包名:(com.ale.upmap应用程序的命名空间)
    • 班级名称:com.ale.upmap.FacebookActivity
  • 应用程序已启用 photo_upload 权限

问题:我是否也需要对代码设置权限?不是自动的吗?我也没有看到任何使用这种方法的例子......

4

0 回答 0