facebook - Facebook 在 MuleStudio 中授权后 Flow Vars 丢失

标签 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="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 连接器中使用它。但变量似乎在传输中丢失了......

我读到这是一个已知问题( mule facebook - flow variable ),但是没有走动之类的吗?

最佳答案

正如答案所暗示的那样,授权 mp 的调用似乎与任何其他逻辑完全隔离,并且只需通过 http:response-builder 返回访问 token id。然后,客户端负责将访问 token 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>

我可以理解为什么,但是让你以非常具体的方式构建你的应用程序。

其他选项是使用“state”参数。但这取决于流变量中的数据类型。示例:

<facebook:authorize state="#[flowVars.myvalue]"/> 

这将在回调中作为入站属性返回,可以通过以下方式检索:

#[message.inboundProperties['state']] 

等等

或者,您可以考虑保留某些值,可能在 mule 对象存储中。

关于facebook - Facebook 在 MuleStudio 中授权后 Flow Vars 丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18255837/

相关文章:

java - Java 库放在哪里?

image - Facebook 分享不显示图像

java - 如果组件已经可用,我们是否应该在 Mule 中使用 Java 组件? Mule 性能和优化

rabbitmq - 如何在 Mule 应用程序中按优先级顺序监听多个队列。

tomcat - 使用 Mule ESB 将数据公开为 ODATA API

mule - 将 json 数据转换为 xml 时遇到问题 : mule esb

json - 从 mule esb 中的 JSON 中提取所有特定字段

html - facebook facepile 生成器代码未呈现深色方案

php - Facebook SDK v5 Graph 返回错误 : Invalid OAuth access token

Facebook Bot for Messenger First App 教程 - firstEntityValue 未定义