2012-05-09 132 views
1

我有以下代碼。Facebook API/Android:牆貼發佈與圖像附件不起作用

它的工作原理和職位的消息的一部分,但在附件部分一點兒也不工作。 我懷疑它與作爲一個字符串傳遞JSON有關。

的Facebook返回"{"id":"23522646737635675"}。所以它不是一個錯誤。

 Bundle params = new Bundle(); 

     params.putString("message", message); 

     JSONObject attachment = new JSONObject(); 

     attachment.put("href", URLEncoder.encode("http://a.espncdn.com/photo/2010/0523/pg2_a_cricket_576.jpg")); 
     attachment.put("name", "Cricket Fantasy"); 
     attachment.put("caption", "New team"); 
     attachment.put("description","Description about Application"); 

     JSONObject media = new JSONObject(); 

     media.put("type", "image"); 
     media.put("src", URLEncoder.encode("http://a.espncdn.com/photo/2010/0523/pg2_a_cricket_576.jpg")); 
     media.put("href", URLEncoder.encode("http://a.espncdn.com/photo/2010/0523/pg2_a_cricket_576.jpg")); 
     attachment.put("media", media); 

     params.putString("attachement", attachment.toString()); 

     String response = mFacebook.request("me/feed", params, "POST"); 

回答

2

你不能發送json編碼的數據到Facebook,不會這樣工作。 每個參數都應該在POST主體上。

此外,「安裝」方式是一箇舊的和不再使用。 它應該是這個樣子:

Bundle params = new Bundle(); 

params.putString("message", message); 
params.put("name", "Cricket Fantasy"); 
params.put("caption", "New team"); 
params.put("description","Description about Application"); 
params.put("url", URLEncoder.encode("http://a.espncdn.com/photo/2010/0523/pg2_a_cricket_576.jpg")); 

String response = mFacebook.request("me/feed", params, "POST"); 

上傳使用URL圖像的官方參考可以在這裏找到:Uploading Photos to the Graph API via a URL。 發佈到Feed的參數可以在User object文檔中找到。

0
Bundle params = new Bundle(); 
        // params.putString("multipart/form-data", imgurl); 
        params.putByteArray("multipart/form-data",byteArray); 

        params.putString("caption", txtcaption.getText().toString()); 
        /* make the API call */ 
        new GraphRequest(
          AccessToken.getCurrentAccessToken(), 
          "/me/photos", 
          params, 
          HttpMethod.POST, 
          new GraphRequest.Callback() { 
           public void onCompleted(GraphResponse response) { 
            /* handle the result */ 
            Log.e("responseImagedata---", response.toString()); 

           } 
          } 
        ).executeAsync(); 
相關問題