我正在尝试使用节点SOAP npm模块(https://github.com/vpulim/node-soap)服务。
var soap = require('soap');
var soapWSDL = "https://webservice.s7.exacttarget.com/etframework.wsdl";
soap.createClient(soapWSDL, function (err, client) {
if (err) {
return callback(err, null);
}
client.setSecurity(new soap.WSSecurity(self.username, self.password));
console.log("describe", client.describe());
console.log("retrieve", client.describe().PartnerAPI.Soap.Retrieve);
});
Run Code Online (Sandbox Code Playgroud)
第一个日志显示了可用的方法...
但是我正在尝试从第二个console.log了解参数所需的确切格式...
更具体地说,当我打电话给client.Retrieve(options,function(e,r){});我时,要求的格式options是什么?
这是两个console.logs的输出
描述:
{ PartnerAPI:
{ Soap:
{ Create: [Object],
Retrieve: [Object],
Update: [Object],
Delete: [Object],
Query: [Object],
Describe: [Object],
Execute: [Object],
Perform: [Object],
Configure: [Object],
Schedule: [Object],
VersionInfo: [Object],
Extract: [Object],
GetSystemStatus: [Object] } } }
Run Code Online (Sandbox Code Playgroud)
检索:
{ input:
{ RetrieveRequest:
{ 'ClientIDs[]': [Object],
ObjectType: 'xsd:string',
'Properties[]': 'xsd:string',
Filter: [Object],
'RespondTo[]': [Object],
'PartnerProperties[]': [Object],
ContinueRequest: 'xsd:string',
QueryAllAccounts: 'xsd:boolean',
RetrieveAllSinceLastBatch: 'xsd:boolean',
RepeatLastResult: 'xsd:boolean',
Retrieves: [Object],
Options: [Object],
targetNSAlias: 'tns',
targetNamespace: 'http://exacttarget.com/wsdl/partnerAPI' } },
output:
{ OverallStatus: 'xsd:string',
RequestID: 'xsd:string',
'Results[]':
{ Client: [Object],
PartnerKey: 'xsd:string',
'PartnerProperties[]': [Object],
CreatedDate: 'xsd:dateTime',
ModifiedDate: 'xsd:dateTime',
ID: 'xsd:int',
ObjectID: 'xsd:string',
CustomerKey: 'xsd:string',
Owner: [Object],
CorrelationID: 'xsd:string',
ObjectState: 'xsd:string',
targetNSAlias: 'tns',
targetNamespace: 'http://exacttarget.com/wsdl/partnerAPI' } } }
Run Code Online (Sandbox Code Playgroud)
小智 2
在此示例中,您应该查看键名称和格式。例如,任何[]末尾带有 a 的键都意味着这应该是 a SOAP Sequence。如果没有看到输入/输出的完整格式,我无法 100% 确定某些内容 - 您可以尝试使用 Node.js 的util函数来深入检查对象。例如:
var utils = require('utils');
/* later */
console.log( utils.inspect( testObject, {depth: null} ) );
Run Code Online (Sandbox Code Playgroud)
尽可能回答你的问题:
var args = {
ClientIDs: [{ /* Some object - not sure without inspect */ }],
ObjectType: 'someString',
Properties: ['someString', 'someString'],
Filter: { /* Some object - not sure without inspect */ },
RespondTo: [{ /* Some object - not sure without inspect */ }],
PartnerProperties: [{ /* Some object - not sure without inspect */ }],
ContinueRequest: 'someString',
QueryAllAccounts: true, /* or false */
RetrieveAllSinceLastBatch: true, /* or false */
RepeatLastResult: true, /* or false */
Retrieves: [{ /* Some object - not sure without inspect */ }],
Options: [{ /* Some object - not sure without inspect */ }]
}
client.RetrieveRequest(args, function(err, result, raw, soapHeader) {
/* do something with the result */
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3387 次 |
| 最近记录: |