soap - 使用 Erlang 洗涤剂库在 SOAP 调用中传递 oauth header

标签 soap erlang salesforce elixir

我正在使用detergent对 Salesforce Soap API 进行 SOAP 调用。 我想调用它的函数call/4但是失败了:

:detergent.call("metadata.wsdl", "describeMetadata", ["37.0"], [{'sessionId',token.access_token}])


** (exit) an exception was raised:
** (FunctionClauseError) no function clause matching in :erlsom_write.processAnyAttributes/4
    src/erlsom_write.erl:501: :erlsom_write.processAnyAttributes('ok', [], [{:ns, 'http://schemas.xmlsoap.org/soap/envelope/', 'soap', :unqualified}, {:ns, 'http://soap.sforce.com/2006/04/metadata', 'p', :qualified}, {:ns, 'http://www.w3.org/2001/XMLSchema', 'xsd', :qualified}], {[{'soap', 'http://schemas.xmlsoap.org/soap/envelope/'}], 0})
    src/erlsom_write.erl:325: :erlsom_write.processAlternativeValue/8

传递 token 的 header 语法的预期格式是什么?

最佳答案

您正在使用detergent.call/4期望最后一个参数是 #call_opts 。您正在传递一个列表[由单个元组组成],并且函数子句无法匹配。

我不确定你到底要传递什么(请参阅 #call_opts definition ,),但我相信类似下面的内容应该可以解决问题:

:detergent.call(
  "metadata.wsdl",
  "describeMetadata",
  ["37.0"],
  #call_opts{http_client_options=[{'sessionId',token.access_token}]}
)

关于soap - 使用 Erlang 洗涤剂库在 SOAP 调用中传递 oauth header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39950278/

相关文章:

php - 如何将 SoapClient HTTP 内容类型设置为 application/soap+xml

python - 使用 Python 解析 XML SOAP 响应

erlang - 使用chicagoboss向模型添加外键?

salesforce - 我想在 VisualForce 上公开裸 xml/json

salesforce - Visual Force 页面中的 If Else block

salesforce - 对象自定义按钮的批准/拒绝功能

c# - 多个中间件(REST + SOAP)

Java WSDL 修改或隐藏 Web View 上的某些属性

erlang - fun2ms应该改造吗?

erlang - 如何跨多个模块包含 .hrl 文件 rebar3