2017-03-08 13 views
1

Sinchを使用してAndroidでアプリを作成していて、必要な機能の一部をREST APIに呼び出すだけで実装できます。私はそのために、私は会議が実際に起こっている、この要求を呼び出すと、私はこの400 Sinch REST APIを呼び出すときにエラーが発生する

 String userName = call.getCallId(); 
     final String muteURL = URL+CallingUsersName+"/"+userName; 
     final String muteParticipant = "{ \"command\" : \"mute\" }"; 
     JSONObject muteJSON; 
     try{ 
      muteJSON = new JSONObject(muteParticipant); 
      Toast.makeText(getActivity(),muteJSON.toString(),Toast.LENGTH_SHORT).show(); 
     }catch (JSONException e) { 
      muteJSON = null; 
      Toast.makeText(getActivity(), e.toString(), Toast.LENGTH_SHORT).show(); 
     } 
     JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.PATCH, muteURL, muteJSON, new Response.Listener<JSONObject>() { 
      @Override 
      public void onResponse(JSONObject response) { 
       mConferenceParticipants.setText(response.toString()); 

      } 
     }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       mConferenceParticipants.setText(error.toString()); 

      } 
     }){ 
      @Override 
      public Map<String, String> getHeaders() throws AuthFailureError { 
       HashMap<String, String> params = new HashMap<String, String>(); 
       String creds = String.format("%s:%s",AppKey,AppSecretKey); 
       String auth = "Basic " + Base64.encodeToString(creds.getBytes(), Base64.NO_WRAP); 
       params.put("Authorization", auth); 
       params.put("Content-Type", "application/json"); 
//    params.put("X-HTTP-Method-Override", "PATCH"); 
       return params; 
//    return super.getHeaders(); 
      } 
     }; 
//  jsonObjectRequest.setRetryPolicy(new DefaultRetryPolicy(8000,DefaultRetryPolicy.DEFAULT_MAX_RETRIES,DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 

     rq.add(jsonObjectRequest); 

のようなコードを書かれているが、私は

BasicNetwork.performRequest: Unexpected response code 400 for https://callingapi.sinch.com/v1/conferences/id/Meeting/a291ba94-e430-454f-80a9-73013cd43451 

は、私は信じて、このエラーを取得しています、特定のユーザーをミュートにしたいです400は会議が見つかりませんでしたが会議は確立されており、同じ活動では私にも電話するREST APIと呼んでいます。会議の参加者が正しく動作していることを確認します。

これは間違っていますか?

+0

4は、不正な方法でリクエストを作成する必要があるため、「不正リクエスト」を意味します。私はこのAPIを使っていませんでしたが、私が言うことができるのはこれだけです。 – elbaulp

+0

ok新しい実装を試したところ、このエラーが発生しました。 "BasicNetwork.performRequest:https://callingapi.sinch.com/v1/conferences/id/Meeting/638-a270-44b9-a00c-5ee54b8c042aの予期しない応答コード405" – Tyson

答えて

0

あなたの変数は、ユーザ名を言って、あなたが、私は長い間、この問題を解決しようとしましたが、最終的にはそれが働いてしまった

1

をユーザ名ではないミュートcallidする必要があります。コードは次のとおりです。

public void MuteTheParticipants(){ 
     String userName = call.getCallId(); 
     final String muteURL = URL+CallingUsersName+"/"+userName; 
     StringRequest sr = new StringRequest(Request.Method.PATCH, muteURL, new Response.Listener<String>() { 
      @Override 
      public void onResponse(String response) { 
       if(flag) 
        muteButton.setBackgroundResource(R.drawable.microphone); 
       else 
        muteButton.setBackgroundResource(R.drawable.microphone_off 
        ); 

      } 
     }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       Toast.makeText(getActivity(),error.toString(),Toast.LENGTH_SHORT).show(); 
      } 
     }){ 
      @Override 
      public Map<String, String> getHeaders() throws AuthFailureError { 
       HashMap<String, String> params = new HashMap<String, String>(); 
       String creds = String.format("%s:%s",AppKey,AppSecretKey); 
       String auth = "Basic " + Base64.encodeToString(creds.getBytes(), Base64.NO_WRAP); 
       params.put("Authorization", auth); 
       return params; 
//    return super.getHeaders(); 
      } 

      @Override 
      protected Map<String, String> getParams() throws AuthFailureError { 
       HashMap<String, String> params = new HashMap<String, String>(); 
       if(!flag) { 
        params.put("command", "mute"); 
        flag = true; 
       }else { 
        params.put("command", "unmute"); 
        flag = false; 
       } 
       return params; 
      } 
     }; 
     sr.setRetryPolicy(new DefaultRetryPolicy(8000,DefaultRetryPolicy.DEFAULT_MAX_RETRIES,DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 
     rq.add(sr); 
} 
関連する問題