2012-07-31 100 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牆上的圖像。

編碼快樂..