2012-07-31 106 views
3

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

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)。在哪里应该是一个图像,有一个消息:“无效无效”。

有没有人有想法,我做错了什么?或者有人可以与我分享一段代码,以帮助我在Facebook墙上发布图片?

+0

还有一个在http://kenai.com/projects/facebookapime/pages/Home Java ME的这个实等API你能试试吗? – 2012-07-31 12:56:22

+0

是的,我也试过这个。它不支持在墙上张贴图像。 – Marcin 2012-07-31 13:59:42

回答

1

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

这只适用于Codename One,它也支持在其当前的Facebook演示中发布图片。

1

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

  1. 从从Facebook获得访问令牌:您可以使用PHP或得到它做任何第三方API(在我的情况,我用app42(shephertz)云服务)

  2. 一旦你做到这一点ACCESS TOKEN使用该访问令牌来获取要在其上发布图像的Facebook用户标识。

  3. 一旦你有了userId,唯一剩下的就是使用'MultiPart Request'将图片上传到Facebook。下面是我的代码中的一些重要声明(我没有分享我的整个代码,因为我使用了第三方API(app42)来获取访问令牌和用户ID)。

地址对于Facebook:存储在字节数组

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

图像:字节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); 

您可以使用下面的链接指多部分类要求 http://www.developer.nokia.com/Community/Wiki/HTTP_Post_multipart_file_upload_in_Java_ME

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

编码快乐..