2012-05-09 39 views
1

私は以下のコードを持っています。Facebook API/Android:Wall Post画像の添付ファイルが公開されていません。

メッセージの部分を処理して投稿しますが、添付ファイルの部分は機能しません。 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 それは次のようになります。 フィードに投稿するためのパラメータは、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(); 
関連する問題