如何在Python应用程序中订阅Salesforce Platform Event?

问题描述

我一直在使用Python开发应用程序,以订阅在Salesforce中生成的平台事件。我知道平台事件的基本工作,它使用bayeux协议,长时间轮询,并且需要cometD客户端来订阅事件,但是我无法将其转换为代码

我找到了librarybayeux协议,通过它我可以通过Salesforce对我的客户端进行身份验证,但是,我不确定如何接收事件。

  • 首先,我的应用程序不在任何网络上,而是在本地计算机上运行,​​我不确定它如何访问发布平台事件的“总线”。
  • 第二,该库中有一个用于订阅事件的函数,但是一旦我的应用程序执行了它拥有的所有代码行,它便终止了,它不等待Salesforce上发生的事件来生成平台事件,以便我的应用可以读取它。

如果有人使用Python实现了此功能,请分享一些代码/库,我可以参考该代码/库来实现,或者帮助我了解如何使用this library来监听平台事件,我是否需要放置应用程序在网络服务器上?

我正在分享到目前为止为实现此目的而编写的代码,并且不会引发任何错误

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-这是我创建的平台事件。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)