2014-01-15 42 views
3

我使用facebook sdk 3.6代替android。我試圖通過我的應用程序分享鏈接到用戶fb牆。
我用Facebook API例外「此鏈接無法發佈。」

Bundle postParam = new Bundle(); 
postParam.putString("link","http://mylink.com/image/09324 324.jpg" 
postParam.putString("caption","my caption"); 
… … … 

Request request = new Request(session, "me/feed", postParam, HttpMethod.POST, reqCallback); 
      RequestAsyncTask reqTask = new RequestAsyncTask(request); 
      reqTask.execute(); 

該鏈接包含空格字符
我只需將空格字符替換爲%20即可從瀏覽器訪問該鏈接。但是當我做使用link.replaceAll(" ","%20");一樣,我得到Facebook api exception

ErrorMessage = This link could not be posted. 
ErrorCode = 1500 
ErrorType= FacebookApiException 

我認爲這是URL編碼的問題,但它既不使用URLEncoder也不由String對象的replaceAll方法,通過%20替代空間得到解決。
字符串中沒有任何不可打印的字符。

注意:log cat輸出中複製並添加回bundle的相同鏈接正常工作。
更新:當我重試後相同的鏈接(不log cat複製)從程序時,它獲得成功發佈。

問題是什麼?如何解決?

回答

0

嗯,也許使用

link.replaceAll("\\s",""); 

\ S =凡是是一個空格字符(包括空格,製表符等)

,你可以在這裏看到:

Answer

希望它有助於:)

+0

不,那也行不通。仍然從日誌貓輸出複製並添加回該捆綁時的相同鏈接工作正常。 – user3106522

0

實際上我已經使用的Facebook shareDialog並與狀態對話框本用戶,其中,應用程序可以填充linkpicture,描述and message`(消息僅填充在網頁視圖即在設備沒有安裝FB應用)財產,用戶可以編輯/填寫狀態並在他的時間表上發佈。

這是更貼切的方式張貼在某人的牆上,因爲用戶可以看到他發佈的內容。

不好意思回答我自己的問題,儘管我已經解決了。