Rozszerzenie Salesforce

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. info

Wersja: 2.0.2

uzyskiwać dostęp do danych na koncie Salesforce, wstawiać, aktualizować, pobierać i przeszukiwać dane;

Te treści zawierają informacje o konfigurowaniu i używaniu tego rozszerzenia.

Wymagania wstępne

Te treści zawierają informacje o konfigurowaniu i używaniu tego rozszerzenia. Zanim zaczniesz korzystać z rozszerzenia w ramach serwera proxy interfejsu API za pomocą zasady ExtensionCallout, musisz:

  1. Utwórz parę klucza prywatnego RSA x509 lub certyfikatu.

    Podczas konfigurowania rozszerzenia użyjesz klucza prywatnego (.key) jako danych logowania. Plik certyfikatu (.crt) będzie używany podczas tworzenia połączonej aplikacji, która zapewni rozszerzeniu dostęp do Salesforce.

    openssl req -x509 -sha256 -nodes -days 36500 -newkey rsa:2048 -keyout salesforce.key -out salesforce.crt
    
    
  2. Skonfiguruj połączoną aplikację.

    Połączona aplikacja Salesforce zapewni dostęp do rozszerzenia Salesforce. Zapoznaj się z instrukcjami konfigurowania aplikacji.

  3. Pobierz klucz klienta dla połączonej aplikacji. Rozszerzenie będzie go używać podczas uwierzytelniania w aplikacji.

    1. W konfiguracji Salesforce w menu nawigacyjnym po lewej stronie kliknij Aplikacje > Menedżer aplikacji.
    2. Na liście znajdź utworzoną połączoną aplikację.
    3. W menu po prawej stronie w wierszu aplikacji kliknij Wyświetl.
    4. W sekcji API (Enable OAuth Settings) (API (włącz ustawienia OAuth)) znajdź Consumer Key (Klucz konsumenta) i skopiuj jego wartość w bezpieczne miejsce, aby użyć jej podczas konfigurowania rozszerzenia.

Konfigurowanie połączonej aplikacji na potrzeby dostępu przez rozszerzenie

Zanim rozszerzenie Salesforce uzyska dostęp do Salesforce, musisz utworzyć połączoną aplikację Salesforce, za pomocą której rozszerzenie będzie mogło łączyć się z Salesforce.

W Salesforce połączona aplikacja umożliwia aplikacjom zewnętrznym łączenie się z Salesforce za pomocą interfejsów API.

Konfigurowanie połączonej aplikacji

  1. Zaloguj się w Salesforce.
  2. W prawym górnym rogu kliknij ikonę koła zębatego, a następnie Konfiguracja.
  3. W menu po lewej stronie rozwiń Aplikacje > Menedżer aplikacji.
  4. Na stronie App Manager (Menedżer aplikacji) kliknij New Connected App (Nowa połączona aplikacja).
  5. W sekcji Podstawowe informacje wypełnij wymagane pola. Wartości te służą do celów księgowych i nie są używane przez rozszerzenie.
  6. W sekcji API (Enable OAuth Settings) (API (włącz ustawienia OAuth)) zaznacz pole wyboru Enable OAuth Settings (Włącz ustawienia OAuth).
  7. Wpisz Callback URL (URL wywołania zwrotnego), mimo że nie jest on używany przez rozszerzenie. Możesz użyć http://localhost/ lub innego hosta zastępczego.
  8. Zaznacz pole wyboru Użyj podpisów cyfrowych.
  9. W sekcji Użyj podpisów cyfrowych kliknij Wybierz plik, aby znaleźć i przesłać wygenerowany wcześniej plik salesforce.crt.
  10. W sekcji Wybrane zakresy protokołu OAuth dodaj te zakresy, aby znalazły się w sekcji Wybrane zakresy protokołu OAuth:
    • Dostęp do danych i zarządzanie nimi (API)
    • Wykonywanie żądań w Twoim imieniu w dowolnym momencie (refresh_token, offline_access)
  11. Kliknij Zapisz. Jeśli wystąpią błędy, może być konieczne ponowne wygenerowanie i przesłanie pliku salesforce.crt.
  12. Na stronie aplikacji kliknij Zarządzaj.
  13. Na stronie Menedżera aplikacji w przypadku utworzonej przed chwilą aplikacji kliknij Edytuj zasady.
  14. W sekcji Zasady OAuth kliknij menu Dozwoleni użytkownicy, a następnie Użytkownicy zatwierdzeni przez administratora są wstępnie autoryzowani.
  15. Kliknij Zapisz.
  16. Wróć na stronę aplikacji i w sekcji Profile (Profile) kliknij Manage Profiles (Zarządzaj profilami).
  17. Na stronie Application Profile Assignment (Przypisanie profilu aplikacji) zaznacz pola wyboru profili użytkowników, którzy mogą korzystać z tej aplikacji.

    Wybierz profil odpowiadający użytkownikowi, którego nazwy użyjesz podczas konfigurowania rozszerzenia. Upewnij się też, że dostęp do tej aplikacji mają co najmniej użytkownicy z rolą administratora systemu.

    Ustawienia profilu użytkownika możesz wyświetlić w Salesforce. W obszarze Konfiguracja rozwiń Użytkownicy > Użytkownicy, znajdź użytkownika, którego będzie reprezentować rozszerzenie, a następnie znajdź jego profil w kolumnie Profil.

  18. Kliknij Zapisz.

Informacje o Salesforce

Salesforce to platforma do zarządzania relacjami z klientami (CRM). System CRM pomaga firmom zrozumieć potrzeby klientów i rozwiązywać problemy dzięki lepszemu zarządzaniu informacjami o klientach i interakcjami z nimi. Wszystko to na jednej platformie, która jest zawsze dostępna na każdym komputerze i urządzeniu.

Działania

Insert

Wstaw rekordy jako typy sObject.

Składnia

<Action>insert</Action>
<Input><![CDATA[{
  "sobject": records-sObject-type,
  "records":[ records-to-insert ],
  "allOrNone": true | false
}]]></Input>

Przykład

<Action>insert</Action>
<Input><![CDATA[{
  "sobject": "Account",
  "records":[
    { "Name": "MyAccountName" }
  ],
  "allOrNone": true
}]]></Input>

Parametry żądania

Parametr Opis Typ Domyślny Wymagane
sobject Typ obiektu sObject rekordów do wstawienia. Ciąg znaków Brak. Tak.
zgłoszeń Tablica rekordów sObject w formacie JSON. Maksymalnie 1000. Tablica Brak. Tak.
allOrNone true, aby w przypadku niepowodzenia którejkolwiek części aktualizacji nie powiodła się cała aktualizacja. Wartość logiczna fałsz Nie.

Odpowiedź

Tablica results z wynikami operacji wstawiania.

{
  results: [
    { id: '0011U00000LQ76KQAT', success: true, errors: [] },
    { id: '0011U00000LQ76LQAT', success: true, errors: [] }
  ]
}
Właściwość Opis Typ Domyślny Wymagane
results[*].id Identyfikator sObject wygenerowany dla nowego rekordu. Ciąg znaków Brak. Tak.
results[*].success true, jeśli wstawienie rekordu się powiodło. Wartość logiczna Brak. Tak.
results[*].errors Tablica błędów, które wystąpiły podczas wykonywania (jeśli takie są). Tablica Brak. Tak.

update

aktualizować rekordy Salesforce;

Składnia

<Action>update</Action>
<Input><![CDATA[{
  "sobject": records-sObject-type,
  "records": [ records-to-update ],
  "allOrNone": true | false
}]]></Input>

Przykład

<Action>update</Action>
<Input><![CDATA[{
  "sobject": "Account",
  "records":[
    {
      "id":"0011U00000LQ76KQAT",
      "Name": "MyNewAccountName"
    }
  ],
  "allOrNone": true
}]]></Input>

Parametry żądania

Parametr Opis Typ Domyślny Wymagane
sobject Typ obiektu rekordów do zaktualizowania. Ciąg znaków Brak. Tak.
zgłoszeń Tablica rekordów sObject w formacie JSON. Każdy rekord do zaktualizowania musi zawierać wartość identyfikatora rekordu. Maksymalnie 1000. Tablica Brak. Tak.
allOrNone true, aby w przypadku niepowodzenia którejkolwiek części aktualizacji nie powiodła się cała aktualizacja. Wartość logiczna fałsz Nie.

Odpowiedź

Tablica results zawierająca wyniki aktualizacji.

{
  results: [
    { id: '0011U00000LQ76KQAT', success: true, errors: [] },
    { id: '0011U00000LQ76LQAT', success: true, errors: [] }
  ]
}
Parametr Opis Typ Domyślny Wymagane
results[*].id Identyfikator sObject wygenerowany dla zaktualizowanego rekordu. Ciąg znaków Brak. Tak.
results[*].success true, jeśli wstawienie rekordu się powiodło. Wartość logiczna Brak. Tak.
results[*].errors Tablica błędów, które wystąpiły podczas wykonywania (jeśli takie są). Tablica Brak. Tak.

odnajdź

Pobieranie rekordów jako obiektów SObject według ich identyfikatorów. Zwraca wszystkie pola typu sObject.

Składnia

<Action>retrieve</Action>
<Input><![CDATA[{
  "sobject": records-sObject-type,
  "ids":[ IDs-of-records-to-retrieve ]
}]]></Input>

Przykład

<Action>retrieve</Action>
<Input><![CDATA[{
  "sobject": "Account",
  "ids":["0011U00000LQ76KQAT"]
}]]></Input>

Parametry żądania

Parametr Opis Typ Domyślny Wymagane
sobject Typ sObject rekordów do pobrania. Ciąg znaków Brak. Tak.
identyfikatory, Tablica identyfikatorów sObject rekordów do pobrania. Maksymalnie 1000. Tablica Brak. Tak.
allOrNone true, aby cała operacja zakończyła się niepowodzeniem, jeśli jakakolwiek część żądania się nie powiedzie. Wartość logiczna fałsz Nie.

Odpowiedź

Tablica records obiektów sObject reprezentowanych jako JSON. Pamiętaj, że w JSON-ie są uwzględniane wszystkie właściwości obiektów, nawet jeśli wartość właściwości to null.

{
  records: [
    { sobject-json },
    { sobject-json }
  ]
}

querySOQL

Wysyłanie zapytań do Salesforce.com za pomocą języka zapytań obiektów Salesforce (SOQL).

Składnia

<Action>querySOQL</Action>
<Input><![CDATA[{
  "soql": soql-query-statement
}]]></Input>

Przykład

<Action>querySOQL</Action>
<Input><![CDATA[{
  "soql": "SELECT Id, Name FROM Account"
}]]></Input>

Parametry żądania

Parametr Opis Typ Domyślny Wymagane
soql Instrukcja SOQL do wykonania zapytania. Ciąg znaków Brak. Tak.

Odpowiedź

Wyniki zapytania.

{
  totalSize: 2,
  records: [
    {
      attributes: { attributes-of-record },
      Id: '0011U00000LQ76KQAT',
      Name: 'AccountName1'
    },
    {
      attributes: { attributes-of-record },
      Id: '0011U00000LQ76LQAT',
      Name: 'AccountName2'
    }
  ],
  done: true
}
Parametr Opis Typ Domyślny Wymagane
totalSize Liczba rekordów zwróconych przez zapytanie. Liczba całkowita Brak. Tak.
zgłoszeń Tablica zwróconych rekordów jako obiekty sObject w formacie JSON. Maksymalnie 1000. Tablica Brak. Tak.
gotowe true, jeśli operacja zapytania została zakończona. Wartość logiczna Brak. Tak.

lista

Wyświetlanie listy rekordów Salesforce.com. Zwraca wszystkie pola określonego typu sObject.

Składnia

<Action>list</Action>
<Input><![CDATA[{
  "sobject": records-sObject-type,
  "limit": max-number-of-records,
  "offset": record-index-at-which-to-begin-response-set
}]]></Input>

Przykład

<Action>list</Action>
<Input><![CDATA[{
  "sobject": "Account",
  "limit": 1000,
  "offset": 0
}]]></Input>

Parametry żądania

Parametr Opis Typ Domyślny Wymagane
sobject Typ obiektu sObject rekordów do wyświetlenia. Ciąg znaków Brak. Tak.
limit Maksymalna liczba rekordów do zwrócenia. Liczba całkowita 1000 Nie.
przesunięcie, Przesunięcie rekordów do wyświetlenia. Liczba całkowita 0 Nie.

Odpowiedź

Tablica records zawierająca wymienione obiekty sObject w formacie JSON.

{
  records: [
    { sobject-json },
    { sobject-json }
  ]
}

Usuń rekordy o określonych identyfikatorach.

Składnia

<Action>del</Action>
<Input><![CDATA[{
  "sobject": records-sObject-type,
  "ids":[ IDs-of-records-to-retrieve ]
}]]></Input>

Przykład

<Action>del</Action>
<Input><![CDATA[{
  "sobject": "Account",
  "ids":["0011U00000LQ76KQAT"]
}]]></Input>

Parametry żądania

Parametr Opis Typ Domyślny Wymagane
sobject Typ obiektu sObject rekordów do usunięcia. Ciąg znaków Brak. Tak.
identyfikatory, Tablica identyfikatorów sObject rekordów do usunięcia. Maksymalnie 1000. Tablica Brak. Tak.

Odpowiedź

Tablica results zawierająca wyniki operacji.

{
  results:[
    { id: '0011U00000LQ76KQAT', success: true, errors: [] },
    { id: '0011U00000LQ76LQAT', success: true, errors: [] }
  ]
}
Właściwość Opis Typ Domyślny Wymagane
results[*].id Identyfikator sObject określonego rekordu. Ciąg znaków Brak. Tak.
results[*].success true, jeśli operacja się powiodła. Wartość logiczna Brak. Tak.
results[*].errors Tablica błędów, które wystąpiły podczas wykonywania (jeśli takie są). Tablica Brak. Tak.

getAccessToken

Uzyskaj token dostępu do interfejsu Salesforce.com API. Może służyć do wysyłania zapytań do interfejsów API REST.

Składnia

<Action>getAccessToken</Action>
<Input><![CDATA[{}]]></Input>

Parametry żądania

Brak.

Odpowiedź

Token dostępu w formacie JSON.

{
  "accessToken":"00D1U0000014m3hqswvoM22I5GTw9EJrztlZ8eSSka88Q",
  "scope":"api",
  "instanceUrl": "https://na85.salesforce.com",
  "id": "https://login.salesforce.com/id/00D1U0004564mutUAA/0051U43214qecVQAQ",
  "tokenType": "Bearer"
}
Właściwość Opis Typ Domyślny Wymagane
accessToken Token dostępu. Ciąg znaków Brak. Tak.
zakres Zakresy, w których token zapewnia dostęp. Ciąg znaków Brak. Tak.
instanceUrl Adres URL instancji używanej przez organizację Salesforce. Ciąg znaków Brak. Tak.
id Identyfikator połączonej aplikacji. Ciąg znaków Brak. Tak.
tokenType Typ tokena dostępu. Ciąg znaków Nośnik Tak.

Odwołanie do konfiguracji

Podczas konfigurowania i wdrażania tego rozszerzenia do użycia w proxy interfejsów API postępuj zgodnie z tymi instrukcjami.

Wspólne właściwości rozszerzeń

Dla każdego rozszerzenia dostępne są poniższe właściwości.

Usługa Opis Domyślnie Wymagany
name Nazwa nadana konfiguracji rozszerzenia. Brak Tak
packageName Nazwa pakietu rozszerzeń podana przez Apigee Edge. Brak Tak
version Numer wersji pakietu rozszerzenia, z którego konfigurujesz rozszerzenie. Brak Tak
configuration Wartość konfiguracji specyficzna dla dodawanego rozszerzenia. Zobacz Właściwości tego pakietu rozszerzeń Brak Tak

Właściwości tego pakietu rozszerzeń

Określ wartości tych właściwości konfiguracji, które są specyficzne dla tego rozszerzenia.

Właściwość Opis Domyślny Wymagane
Adres URL serwera autoryzacji Adres URL, którego należy użyć podczas uzyskiwania autoryzacji z Salesforce. Zwykle jest to https://login.salesforce.com Brak. Tak.
Klucz klienta połączonej aplikacji Klucz klienta udostępniony przez Salesforce dla utworzonej przez Ciebie połączonej aplikacji. Instrukcje dotyczące pobierania klucza klienta znajdziesz w sekcji Wymagania wstępne. Brak. Tak.
Dane logowania Po wpisaniu w konsoli Apigee Edge będzie to zawartość pliku salesforce.key wygenerowanego w ramach opisanych czynności. W przypadku wysyłania za pomocą interfejsu Management API jest to wartość zakodowana w formacie base64 wygenerowana z pliku salesforce.key. Brak. Tak.
Nazwa użytkownika Salesforce Nazwa użytkownika powiązana z utworzoną przez Ciebie połączoną aplikacją. Rozszerzenie Salesforce użyje tego adresu, aby uzyskać autoryzację w Salesforce. Brak. Tak.