问题描述
我一直在使用Python开发应用程序,以订阅在Salesforce中生成的平台事件。我知道平台事件的基本工作,它使用bayeux协议,长时间轮询,并且需要cometD客户端来订阅事件,但是我无法将其转换为代码。
我找到了library的bayeux协议,通过它我可以通过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 (将#修改为@)