繁体   English   中英

从Android上传照片到Facebook墙/相册

[英]Upload photos to Facebook wall/album from Android

我已经从 Git 下载了 Facebook Android SDK并按照developers.facebook中的步骤操作并获得了一个应用程序 ID 并运行了一些示例代码。 我可以在墙上张贴状态。 现在我想上传一张带有描述或标题的照片到墙上,但我做不到。 我浏览了一下,主要是发现以下代码作为照片上传的答案。

public void postImageonWall() {
    byte[] data = null;

    Bitmap bi = BitmapFactory.decodeFile("/sdcard/cutedog.jpg");
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    bi.compress(Bitmap.CompressFormat.JPEG, 100, baos);
    data = baos.toByteArray();
    Bundle params = new Bundle();
    params.putString(Facebook.TOKEN, mFacebook.getAccessToken());
    params.putString("method", "photos.upload");
    params.putByteArray("picture", data);
    params.putString("caption", "So Cuuteee!!");
    AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook);
    mAsyncRunner.request(null, params, "POST", new SampleUploadListener(), null);
}

为此,我得到的响应为 {"pid":"100003180585600_320223","aid":"100003180585600_43760","owner":100003180585600,"src":"http://photos-g.ak.fbcdn.net/ hphotos-ak-prn1/533575_198930480222970_100003180585600_320223_995139351_s.jpg","src_big":"http://a7.sphotos.ak.fbcdn.net/hphotos-ak-prn1/s720x720/533575_198930480222970_100003180585600_320223_995139351_n.jpg","src_small":"http: //photos-g.ak.fbcdn.net/hphotos-ak-prn1/533575_198930480222970_100003180585600_320223_995139351_t.jpg","link":"http://www.facebook.com/photo.php?fbid=198930480222970&set=a.198930373556314.43760. 100003180585600&type=1","caption":"So Cuuteee,:","created":1333718624,"object_id":198930480222970}

照片作为小尺寸图片上传到某处(它提供了一些 URL)。 但不在 Facebook 墙上或相册上。 通过查看 Stack Overflow 问题Android - How to upload photo from the SD card to the Facebook wall ,我尝试了

    mAsyncRunner.request("me/photos", params, "POST", new SampleUploadListener(), null);

    mAsyncRunner.request("me/feed", params, "POST", new SampleUploadListener(), null);

对于两者,我都得到以下回应

   {"error":{"message":"Unsupported method, photos.upload","type":"Exception"}}

怎么上传上墙?

你的应用有photo_upload权限可以上传照片到Facebook吗?

试试这个代码:

Bundle params = new Bundle();
params.putString("method", "photos.upload");

FileInputStream in;
BufferedInputStream buf;
try {
    File file = new File("/sdcard/cutedog.jpg");

    in = new FileInputStream(file);
    buf = new BufferedInputStream(in,1070);

    byte[] bMapArray= new byte[buf.available()];
    buf.read(bMapArray);
    params.putByteArray("picture", bMapArray);
} catch (FileNotFoundException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
} catch (IOException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
}

mAsyncRunner.request(null, params, "POST",new SampleUploadListener(), null);

源代码见https://github.com/facebook/facebook-android-sdk/tree/master/examples/Hackbook/src/com/facebook/android

它包含有关如何上传图像的源代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM