Я пытаюсь получить доступ и извлечь объекты 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. Есть ли что-то, что я здесь скучаю?