Rozszerzenie Salesforce

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

Wersja: 1.0.2

Dostęp do danych na koncie Salesforce. Wstawianie, aktualizowanie, pobieranie i wykonywanie na danych zapytań

W tym artykule znajdziesz informacje na temat konfigurowania i używania tego rozszerzenia.

Wymagania wstępne

W tym artykule znajdziesz informacje na temat konfigurowania i używania tego rozszerzenia. Zanim użyjesz rozszerzenia z serwera proxy interfejsu API przy użyciu zasady ExtensionCallout, musisz:

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

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

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

    Aplikacja połączona z Salesforce będzie mieć dostęp do rozszerzenia Salesforce. Poniżej znajdziesz instrukcje konfigurowania aplikacji.

  3. Uzyskaj klucz klienta dla połączonej aplikacji. Będzie z niego korzystać podczas uwierzytelniania w aplikacji.

    1. W konfiguracji Salesforce w panelu nawigacyjnym po lewej stronie kliknij Aplikacje > Menedżer aplikacji.
    2. Znajdź na liście połączoną aplikację.
    3. W menu po prawej stronie w wierszu aplikacji kliknij Wyświetl.
    4. W sekcji API (Włącz ustawienia OAuth) znajdź Consumer Key (Klucz klienta) i skopiuj jego wartość w bezpieczne miejsce do konfigurowania rozszerzenia.

Konfigurowanie połączonej aplikacji w celu uzyskiwania dostępu przez rozszerzenie

Aby rozszerzenie Salesforce miało dostęp do Salesforce, musisz utworzyć połączoną z nim aplikację, za pomocą której może się łączyć z Salesforce.

W Salesforce połączona aplikacja umożliwia aplikacjom zewnętrznym łączenie się z Salesforce przez interfejsy API.

Konfigurowanie połączonej aplikacji

  1. Zaloguj się w Salesforce.
  2. Kliknij ikonę koła zębatego w prawym górnym rogu i wybierz Konfiguracja.
  3. W panelu nawigacyjnym po lewej stronie rozwiń Aplikacje > Menedżer aplikacji.
  4. Na stronie Menedżer aplikacji kliknij Nowa połączona aplikacja.
  5. W sekcji Informacje podstawowe wypełnij wymagane pola. Wartości odnoszą się do księgowości, nie są używane przez rozszerzenie.
  6. W sekcji API (Włącz ustawienia OAuth) zaznacz pole wyboru Włącz ustawienia OAuth.
  7. Wpisz URL wywołania zwrotnego, ale nie jest on używany przez rozszerzenie. Możesz użyć hosta http://localhost/ lub innego hosta zastępczego.
  8. Zaznacz pole Używaj podpisów cyfrowych.
  9. W sekcji Używanie podpisów cyfrowych kliknij Wybierz plik, aby odszukać i przesłać wygenerowany wcześniej salesforce.crt.
  10. W sekcji Wybrane zakresy protokołu OAuth dodaj następujące pola w obszarze Wybrane zakresy protokołu OAuth:
    • Uzyskiwanie dostępu do danych i zarządzanie nimi (interfejs API)
    • Wykonywanie żądań w Twoim imieniu w dowolnym momencie (refresh_token, offline_access)
  11. Kliknij Zapisz. Jeśli wystąpią błędy, konieczne może być ponowne wygenerowanie i przesłanie pliku salesforce.crt.
  12. Na stronie aplikacji kliknij Zarządzaj.
  13. Na stronie Menedżera aplikacji utworzonej przed chwilą kliknij Edytuj zasady.
  14. W sekcji Zasady OAuth kliknij menu Dozwolone użytkownicy i wybierz Użytkownicy zatwierdzeni przez administratorów są wstępnie autoryzowani.
  15. Kliknij Zapisz.
  16. Na stronie aplikacji w sekcji Profile kliknij Zarządzaj profilami.
  17. Na stronie Application Profile Assignment (Przypisywanie profilu aplikacji) zaznacz pola wyboru dla profili użytkowników, które mogą używać tej aplikacji.

    Pamiętaj, aby wybrać profil odpowiadający użytkownikowi, którego nazwa zostanie użyta przy konfigurowaniu rozszerzenia. Upewnij się też, że dostęp do tej aplikacji mają przynajmniej administratorzy systemu.

    Ustawienia profilu użytkownika możesz wyświetlić w Salesforce. W obszarze Konfiguracja rozwiń sekcję 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). Zarządzanie relacjami z klientami pomaga firmom zrozumieć potrzeby i rozwiązywania problemów dzięki lepszemu zarządzaniu informacjami o klientach i interakcjami z nimi – wszystko to na jednej platformie, zawsze dostępnej z dowolnego komputera i urządzenia.

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
obiekt sobject Typ sObject rekordów do wstawienia. Ciąg znaków Brak. Tak.
zgłoszeń Tablica rekordów sObject w formacie JSON. Maksimum: 1000. Tablica Brak. Tak.
allOrNone true, jeśli któraś część aktualizacji się nie powiedzie, cała aktualizacja zakończy się niepowodzeniem. 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 ten rekord został wstawiony. Wartość logiczna Brak. Tak.
results[*].errors Tablica błędów przechwyconych podczas wykonywania (jeśli istnieją). Tablica Brak. Tak.

update

Zaktualizuj rekordy w 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
obiekt sobject Typ sObject rekordów do zaktualizowania. Ciąg znaków Brak. Tak.
zgłoszeń Tablica rekordów sObject w formacie JSON. Każdy rekord do aktualizacji musi zawierać wartość identyfikatora. Maksimum: 1000. Tablica Brak. Tak.
allOrNone true, jeśli któraś część aktualizacji się nie powiedzie, cała aktualizacja zakończy się niepowodzeniem. 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 ten rekord został wstawiony. Wartość logiczna Brak. Tak.
results[*].errors Tablica błędów przechwyconych podczas wykonywania (jeśli istnieją). Tablica Brak. Tak.

pobierz

Pobierz rekordy jako obiekty 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
obiekt sobject Typ sObject rekordów do pobrania. Ciąg znaków Brak. Tak.
identyfikatory Tablica rekordów identyfikatorów sObject do pobrania. Maksimum: 1000. Tablica Brak. Tak.
allOrNone true spowoduje, że cała operacja zakończy się niepowodzeniem, jeśli jakakolwiek część żądania się nie powiedzie. Wartość logiczna fałsz Nie.

Odpowiedź

Tablica records obiektów sObject w formacie JSON. Pamiętaj, że wszystkie właściwości obiektów są zawarte w kodzie JSON, nawet jeśli wartość właściwości jest równa null.

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

querySOQL

Wyślij zapytanie do Salesforce.com, korzystając z Salesforce Object Query Language (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, której ma dotyczyć zapytanie. 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 w postaci obiektów sObject w formacie JSON. Maksimum: 1000. Tablica Brak. Tak.
gotowe true, jeśli operacja zapytania została zakończona. Wartość logiczna Brak. Tak.

lista

Wyświetlenie 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
obiekt sobject Typ 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.
odliczyć 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
obiekt sobject Typ sObject rekordów do usunięcia. Ciąg znaków Brak. Tak.
identyfikatory Tablica identyfikatorów sObject rekordów do usunięcia. Maksimum: 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 powiodła się dla rekordu. Wartość logiczna Brak. Tak.
results[*].errors Tablica błędów przechwyconych podczas wykonywania (jeśli istnieją). Tablica Brak. Tak.

getAccessToken

Pobieranie tokena dostępu interfejsu API Salesforce.com Może być używana 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 ramach 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 Wpisz token dostępu. Ciąg znaków Nośnik Tak.

Odniesienie do konfiguracji

Podczas konfigurowania i wdrażania tego rozszerzenia na potrzeby serwerów proxy interfejsu API użyj poniższych wskazówek.

Typowe 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 następujących właściwości konfiguracji specyficznych dla tego rozszerzenia.

Właściwość Opis Domyślny Wymagane
URL serwera autoryzacji Adres URL, który ma być używany do uzyskiwania autoryzacji z Salesforce. Zwykle jest to https://login.salesforce.com Brak. Tak.
Połączony klucz klienta aplikacji Klucz klienta udostępniony przez Salesforce dla utworzonej przez Ciebie połączonej aplikacji. Instrukcje pobierania klucza klienta znajdziesz w sekcji Wymagania wstępne. Brak. Tak.
Dane logowania Jeśli wpiszesz ją w konsoli Apigee Edge, zobaczysz zawartość pliku salesforce.key wygenerowanego w powyższych krokach. W przypadku wysyłania przez interfejs API zarządzania jest to wartość zakodowana w formacie base64 generowana z pliku Salesforce.key. Brak. Tak.
Nazwa użytkownika Salesforce Nazwa użytkownika powiązana z utworzoną przez Ciebie połączoną aplikacją. Rozszerzenie Salesforce będzie używać go do uzyskiwania autoryzacji z Salesforce. Brak. Tak.