Как подписаться на событие платформы Salesforce в приложении Python?

Я работал над приложением на Python, чтобы подписаться на события платформы, созданные в Salesforce. Я знаю основы работы с событиями платформы, он использует протокол Байё, длинный опрос и требует, чтобы клиент cometD подписался на событие, но я не могу перевести это в код.

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

  • Во-первых, мое приложение не находится в какой-либо сети, оно работает на моем локальном компьютере, я не уверен, как оно получит доступ к "шине", на которой публикуются события платформы.
  • Во-вторых, есть функция для подписки на события в этой библиотеке, но как только мое приложение выполнит все строки кода, которое у него есть, оно завершится, не дожидаясь события в Salesforce, которое сгенерирует событие платформы, поэтому мои приложение могло его прочитать.

Если кто-то реализовал это на Python, поделитесь кодом / библиотекой, на которую я могу ссылаться, чтобы реализовать это, или помогите мне понять, как использовать эту библиотеку для прослушивания событий платформы, и нужно ли мне размещать свое приложение на веб-сервере?

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

from python_bayeux import BayeuxClient as Client
import requests

def cb(data):
  print('callback')
  print(data)

s = requests.Session()
s.headers.update({'Authorization': 'OAuth <ACCESS_TOKEN>'})

client = Client("https://instance.my.salesforce.com/cometd/48.0/", oauth_session=s, start=False)
client.handshake()
client.connect()
client.subscribe("event/File_Upload__e", callback = cb)

File_Upload__e - это событие платформы, которое я создал.

0 ответов

Другие вопросы по тегам