Почему я получаю Volley.AuthFailureError, когда пытаюсь получить доступ к Salesforce API из Android? - PullRequest
0 голосов
/ 02 мая 2020

Я пытаюсь получить доступ и извлечь объекты SFD C через приложение Android. Ниже приведен код, который я написал до сих пор.

Я получаю токен доступа подключенного приложения, отправляя запрос:

 public String getAccessToken(final Context context){

    RequestQueue requestQueue = Volley.newRequestQueue(context);
    StringRequest stringRequest = new StringRequest(Request.Method.POST, ACCESS_TOKEN_URL,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    //got the access token
                    Gson gson = new Gson();
                    ResponseWrapper responseWrapper = gson.fromJson(response.toString(), ResponseWrapper.class);
                    accessToken = responseWrapper.access_token;
                    Toast.makeText(context,  accessToken, Toast.LENGTH_SHORT).show();
                    System.out.print(accessToken);
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    //Couldn't get the access Token
                    Toast.makeText(context,error.toString(),Toast.LENGTH_LONG).show();
                }
            }){
        @Override
        protected Map<String,String> getParams(){
            Map<String,String> params = new HashMap<String, String>();
            params.put("username", USERNAME);
            params.put("password", PASSWORD);
            params.put("grant_type", GRANT_TYPE);
            params.put("client_id", CLIENT_ID);
            params.put("client_secret", CLIENT_SECRET);
            return params;
        }

    };
    requestQueue.add(stringRequest);
    return accessToken;
}

После этого я пытаюсь получить доступ к sObjects в Salesforce, передавая токен доступа, полученный с помощью указанной выше функции. ,

public void getCategories(final Context context, final String accessToken){
    Toast.makeText(context, "Inside Get Categories", Toast.LENGTH_SHORT).show();
    RequestQueue requestQueue = Volley.newRequestQueue(context);
    StringRequest stringRequest = new StringRequest(Request.Method.GET, REST_URL,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    Toast.makeText(context, "Inside OnResponse", Toast.LENGTH_SHORT).show();
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    //Couldn't get the categories
                    Toast.makeText(context,error.toString(),Toast.LENGTH_LONG).show();
                }
            }){
        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            Map<String, String>  headers = new HashMap<String, String>();
            headers.put("Authorization", "Bearer "+ accessToken);
            return headers;
        }
    };
    requestQueue.add(stringRequest);
}

Но я получаю ошибку AuthFailureError. Есть ли что-то, что я здесь скучаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...