【问题标题】:Android: unable to upload image to facebook albumAndroid:无法将图像上传到 Facebook 相册
【发布时间】:2015-08-20 15:35:45
【问题描述】:

我正在编写将图像上传到 Facebook 相册“个人资料图像”的代码,在从图库中选择图像后,它被转换为字节数组 imageBytes 并发送到 AsyncTask。我使用休闲代码上传图像。 facebookProfileImagesAlbumId 拥有专辑“个人资料图片”的 ID

 Bundle params_ = new Bundle();
 String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);

 params_.putString("source", encodedImage);
 /* make the API call */
 new GraphRequest(
        AccessToken.getCurrentAccessToken(),
        "/"+facebookProfileImagesAlbumId+"/photos",
        params_,
        HttpMethod.POST,
        new GraphRequest.Callback() {
              public void onCompleted(GraphResponse response) {
                   Log.i("Login", response.toString());
              }
        }).executeAndWait();

但它不起作用,Log.i("Login", response.toString()); 给出以下消息

{Response: responseCode: 200, graphObject: null, error: {HttpStatus: -1, errorCode: -1, errorType: null, errorMessage: 无法构造请求正文}}

我正在使用 Facebook Graph API 2.4

【问题讨论】:

    标签: android facebook facebook-graph-api-v2.4


    【解决方案1】:

    我已使用以下代码将图像发布到 facebook 墙或特定相册。

    public void PostImage(Bitmap bitmap) {
            AccessToken token = AccessToken.getCurrentAccessToken();
            if (token != null) {
                Bundle parameters = new Bundle(2);
                parameters.putParcelable("source", bitmap);
                parameters.putString("message", "description");
                new GraphRequest(token, "/"+facebookProfileImagesAlbumId+"/photos", parameters, HttpMethod.POST, new GraphRequest.Callback() {
    
                    public void onCompleted(GraphResponse response) {
                        Log.e("Image Post", "Res =" + response.toString());
                    }
                }).executeAsync();
            }
        }
    

    希望这会有所帮助!

    【讨论】:

    • 但出现另一个错误 {Response: responseCode: 403, graphObject: null, error: {HttpStatus: 403, errorCode: 220, errorType: OAuthException, errorMessage: (#220) 相册不可见} },我知道它与代码无关
    • facebookProfileImagesAlbumId 值是否正确?或者首先尝试“me/photos”而不是“/”+facebookProfileImagesAlbumId+“/photos”。
    • 不能再上传到用户头像相册。您只能上传到为您的应用创建的相册(如果您发布到 /me/photos,Facebook 会自动执行此操作),然后用户可以通过 Facebook UI 选择将该图像用作他们自己的新个人资料图像。跨度>
    猜你喜欢
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-06
    • 2012-09-20
    相关资源
    最近更新 更多