根据https://salesforce.stackexchange.com/questions/48901/create-streaming-pushtopic-using-rest-api,我应该可以使用标准的sobject API来创建PushTopic
。但是,当我这样做时,我收到错误
请求的资源不存在。
事实上,我甚至无法描述这个对象。
我正在使用node
和jsforce
对此进行测试。我已成功使用execute anonymous apex code
中的developer console
来创建主题,但我要求它在我自己的服务器内完成。
我的代码如下:
var jsforce = require('jsforce');
var config = {...};
var conn = new jsforce.Connection({
oauth2 : {
clientId : config.oauthClientId,
clientSecret : config.oauthSecret,
redirectUri : config.oauthCallbackUrl
},
instanceUrl : config.instanceUrl,
accessToken : config.accessToken,
refreshToken: config.refreshToken
});
conn
.sobject('PushTopic')
.describe()
.then(function(ret){
console.log('Description:', ret)
}, function(err){
console.log('Error:', err)
});
我得到:
错误{[NOT_FOUND:请求的资源不存在]名称:' NOT_FOUND',errorCode:' NOT_FOUND' }
如果我使用'Account'
代替'PushTopic'
,我会:
描述{actionOverrides:[], 可激活的:假的, childRelationships: ...
这是jsforce
的问题吗?任何想法都赞赏!
答案 0 :(得分:4)
确定。问题是我的用户没有PushTopic对象的权限。即使我可以订阅该主题产生的流媒体通道(启用流式api),您还需要其他权限来创建主题。
设置 - >管理用户 - >权限集 - >新 - >保存 - >对象设置 - >推送主题 - >编辑
然后
管理作业 - >添加作业
我创建了一个名为“PushTopic_Creator”的权限集,只添加了该权限,然后将其应用于我的用户。我现在可以描述和创建PushTopics了!
答案 1 :(得分:-1)
根据此文档,支持的REST调用是:
REST:DELETE,GET,PATCH,POST(查询请求在。中指定) URI)
与此同时,如果您在Workbench中检查样本,则Streaming API配置不需要Salesforce describe()
调用。