Как подписаться на событие платформы 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 - это событие платформы, которое я создал.