Как получить доступ к объектам Salesforce и получить их с помощью вызовов API Volley в Android? - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь получить доступ к объектам SFD C и получить их через приложение Android. Как мы сможем это сделать? Мне сказали, что мы можем использовать REST API SFD C, как показано ниже, и выполнять операции CRUD, как показано ниже: https://yourorg.com/services/data/v48.0/sobjects/custom-object

Но я не уверен, как go с аутентификационной частью. Выручи меня! Ниже приведен код, который я написал до сих пор

package com.example.shoppingstore;
import android.content.Context;
import android.util.Log;
import android.widget.Toast;
import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;

public class SalesforceRESTAPI {
    String accessToken = "my access token";
    public void getCategories(final Context context){
        String URL = "my URL";
        RequestQueue requestQueue = Volley.newRequestQueue(context);
        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(
                Request.Method.GET,
                URL,
                null,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        //the categories are returned
                        Log.e("Response REST", response.toString());
                        Toast.makeText(context, "Worked", Toast.LENGTH_SHORT).show();
                    }
                },
                new Response.ErrorListener()
                {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        //error occured while retriving the categories
                        Log.e("Response REST", error.toString());
                        Toast.makeText(context, error.toString(), Toast.LENGTH_SHORT).show();
                    }
                }
        ) {
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                Map<String, String>  params = new HashMap<String, String>();
                params.put("Type", "oAuth2.0");
                params.put("Authentication", accessToken);
                params.put("Accept-Encoding", "gzip, deflate, br");
                params.put("Connection", "keep-alive");
                params.put("Accept", "*/*");
                return params;
            }
        };
        requestQueue.add(jsonObjectRequest);

    }
}

1 Ответ

0 голосов
/ 02 мая 2020

Э-э, это может быть массивный топи c. Как вы планируете пройти аутентификацию. Будет ли у вас 1 сервисная учетная запись, которая подключается к SF со всех мобильных устройств? Если вы делаете - как вы собираетесь хранить учетные данные? Что если кто-то взломает пакет и вам потребуется массовая смена пароля?

Или вы позволите людям входить в SF, используя свое имя пользователя и пароль Salesforce. Может быть, даже не отображать форму для ввода текста, вы просто покажете им страницу входа в SF, и в случае успеха они будут перенаправлены обратно в ваше приложение. Это особенно здорово, когда у них на самом деле нет пароля SF, компания настроила единый вход и они входят в SF через свою учетную запись Google / Windows / Facebook / what-have-you ...

Эти вещи были решены в прошлом. Если вы еще этого не сделали - прочитайте о OAuth2 и о том, какие потоки OAuth2 вы можете сделать с помощью Salesforce.

Я знаю, это просто куча ссылок, но попробуйте прочитать, если не выполнить хотя бы trailheads. Несколько часов чтения и планирования могут сэкономить вам недели на кодирование себя в угол.

Я имею в виду, что никогда в жизни не писал приложений, но есть вероятность, что Android SDK и статьи здесь уже содержат все, что вам нужно: https://developer.salesforce.com/developer-centers/mobile/. Похоже, SDK даже поставляется с примерами приложений: https://developer.salesforce.com/docs/atlas.en-us.mobile_sdk.meta/mobile_sdk/android_sample_app.htm

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