3

我正在尝试将设备中的图像发布到用户的墙上。我发现:http ://codenameone.blogspot.com/2011/09/lwuit-and-facebook-api-by-chen-fishbein_18.html ,但它不支持发布图片,所以我写了一个简单的方法,如这个:

 public void postOnWallWithPhoto(String userId, String message, byte[] img) throws IOException {
    checkAuthentication();
    FacebookRESTService con = new FacebookRESTService(token, userId, FEED, true);
    con.setContentType("image/jpeg");
    con.addArgument("message", message);
    con.addArgument("type", "photo");
    con.addArgument("picture", img);
    if (slider != null) {
        SliderBridge.bindProgress(con, slider);
    }
    for (int i = 0; i < responseCodeListeners.size(); i++) {
        con.addResponseCodeListener((ActionListener) elementAt(i));
    }
    current = con;
    NetworkManager.getInstance().addToQueueAndWait(con);
}

这个方法是这样调用的:

FileConnection fc = (FileConnection) Connector.open(path);
InputStream is = fc.openInputStream();
byte[] b = new byte[(int) fc.fileSize()];
is.read(b);
FaceBookAccess.getInstance().postOnWallWithPhoto(me.getId(), "test2", b);

在我发送请求后,墙上只显示文本(在此示例中为 test2)。在应该是图像的地方,有一条消息:“invalid invalid”。

有谁知道,我做错了什么?或者有人可以与我分享一个代码,它可以帮助我在 Facebook 墙上发布图像吗?

4

2 回答 2

1

由于 facebook 对其登录过程进行了更改,旧的 LWUIT facebook 登录不再正常工作。

这仅适用于Codename One,它还支持在其当前的 facebook 演示中发布图像。

于 2012-08-09T16:21:00.670 回答
1

众所周知,J2me 没有提供任何用于 facebook 支持的 api,但有一种方法我们仍然可以在 facebook 墙上发布图像,我已经做到了。下面我将分享一个简短的程序,说明我们如何使用 j2me 将图像发布到 facebook 墙上。

  1. 从 facebook 获取 ACCESS TOKEN:您可以使用 PHP 或任何第三方 api 来完成它(在我的情况下,我使用 app42(shephertz) 云服务)

  2. 获得访问令牌后,使用该访问令牌获取要在其上发布图像的 facebook 用户 ID。

  3. 一旦你有了 userId,剩下的就是使用“MultiPart Request”将图像上传到 Facebook。以下是我的代码中的一些重要语句(我没有分享我的整个代码,因为我使用了第三方 api(app42) 来获取访问令牌和用户 ID)。

脸书网址:

String url = "https://graph.facebook.com/" + user_id + "/photos?access_token=" + accessToken;

图像存储在字节数组中:byte fileBytes[];

多部分请求中使用的哈希表(您可以按原样复制它):

Hashtable params = new Hashtable();
params.put("custom_param", "param1");
params.put("custom_param2", "param2");

发送我的多部分请求的类

HttpMultipartRequest req = new HttpMultipartRequest(url, params, "upload_field", "original_filename.png", "image/png", fileBytes);

您可以使用以下链接参考 Multipart 请求 http://www.developer.nokia.com/Community/Wiki/HTTP_Post_multipart_file_upload_in_Java_ME

一旦你完成了它,我希望你可能已经成功地在 Facebook 墙上发布了一张图片。

快乐编码..

于 2013-06-13T07:35:02.990 回答