Facebook在MuleStudio授权后流量变量丢失
我有一个简单的流程来授权Facebook,然后发布消息Facebook在MuleStudio授权后流量变量丢失,facebook,mule,mule-studio,Facebook,Mule,Mule Studio,我有一个简单的流程来授权Facebook,然后发布消息 <flow name="drupal-esbFlow2" doc:name="drupal-esbFlow2"> <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8082" doc:name="HTTP"/> <set-variable variableName="facebook
<flow name="drupal-esbFlow2" doc:name="drupal-esbFlow2">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8082" doc:name="HTTP"/>
<set-variable variableName="facebookMSG" value="#[message.inboundProperties['msg']]" doc:name="Variable"/>
<facebook:authorize config-ref="Facebook" doc:name="Authorize"/>
<set-session-variable variableName="accessTokenId" value="#[flowVars['OAuthAccessTokenId']]" doc:name="Get OAuthAccessTokenId"/>
<facebook:publish-message config-ref="Facebook" msg="#[flowVars['facebookMSG']]" profile_id="100001574667695" accessTokenId="#[sessionVars['accessTokenId']]" doc:name="Publish Message"/>
<json:object-to-json-transformer doc:name="Object to JSON"/>
</flow>
我想点击端点localhost:8082?msg=myMessage。然后我想在流变量中保护inboundProperties['msg'],并在Facebook连接器中使用它。但似乎变量在传输过程中丢失了
我已经读到这是一个已知的问题(),但是没有漫游或其他什么吗?答案暗示,似乎authorize mp是在与任何其他逻辑完全隔离的情况下调用的,只是通过http:response builder返回访问令牌id。然后,客户端负责将访问令牌id发送到另一个流以进行任何其他处理:
<flow name="authorizationAndAuthenticationFlow">
<http:inbound-endpoint host="localhost" port="8080" path="oauth-authorize"/>
<facebook:authorize/>
<http:response-builder status="200">
<http:set-cookie name="accessTokenId" value="#[flowVars['OAuthAccessTokenId']]"/>
<set-payload value="You have successfully authorized the connector. You access token id is #[flowVars['OAuthAccessTokenId']]"/>
</http:response-builder>
</flow>
等等
或者,您可以考虑持久化某些值,可能是在mule对象存储中
<facebook:authorize state="#[flowVars.myvalue]"/>
#[message.inboundProperties['state']]