2012-05-09 2 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으로 인코딩 된 데이터를 페이스 북으로 보낼 수 없으므로 작동하지 않습니다. 각 매개 변수는 POST 본문에 있어야합니다.

또한 "attachment"방식은 이전 방식이며 더 이상 사용되지 않습니다.

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 그것은 뭔가를 보일 것입니다. 피드에 게시하기위한 매개 변수는 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();