Oauth 2.0 无法从Mule Salesforce获取访问令牌

Oauth 2.0 无法从Mule Salesforce获取访问令牌,oauth-2.0,salesforce,mule,Oauth 2.0,Salesforce,Mule,尝试从SalesForce获取访问令牌时,我无法获取访问令牌。我输入了的回调URL。但是,当我打印令牌时,我在浏览器中得到null。当我改变消费者的关键价值时,我仍然获得了成功,这似乎不是我在使用服务。这是我的配置。我向发送请求,然后返回 您已成功授权连接器。您的访问令牌id为:null <http:listener-config name="HTTP_Listener_Configuration" host="localhost" port="8081" d

尝试从SalesForce获取访问令牌时,我无法获取访问令牌。我输入了的回调URL。但是,当我打印令牌时,我在浏览器中得到null。当我改变消费者的关键价值时,我仍然获得了成功,这似乎不是我在使用服务。这是我的配置。我向发送请求,然后返回

您已成功授权连接器。您的访问令牌id为:null

   <http:listener-config name="HTTP_Listener_Configuration"
            host="localhost" port="8081" doc:name="HTTP Listener 
    Configuration" />

        <sfdc:config-with-oauth name="salesforce-oauth"
            onNoToken="EXCEPTION"
       accessTokenUrl="https://app.my.salesforce.com/services/oauth2/token"

     authorizationUrl="https://app.my.salesforce.com/services/oauth2/authorize"
            consumerKey="myConsumerKey"
            consumerSecret="33388E8E" doc:name="Salesforce (OAuth)">
            <sfdc:oauth-callback-config domain="localhost"
                localPort="8081" remotePort="8081" path="AppCallBack" />
        </sfdc:config-with-oauth>

   <flow name="authorize" doc:name="authorize">
            <http:listener config-ref="HTTP_Listener_Configuration"  allowedMethods="GET" 
                path="authorize" doc:name="HTTP">
                <http:response-builder statusCode="200" reasonPhrase="You have successfully authorized the connector. Your access token id is: #[flowVars.OAuthAccessTokenId]" />
                <http:error-response-builder statusCode="404" reasonPhrase="An error has occurred authorizing the connector" />
            </http:listener>
            <sfdc:authorize immediate="TRUE" config-ref="salesforce-oauth"  display="PAGE" doc:name="Authorize at Salesforce" />
        </flow>

  <flow name="sfdctestFlow1" doc:name="readContactFlow1">
            <http:listener config-ref="HTTP_Listener_Configuration"
                path="run" doc:name="HTTP" />
            <sfdc:query config-ref="salesforce-oauth" accessTokenId="#[flowVars.OAuthAccessTokenId]"
                doc:name="Perform a query at Salesforce" query="SELECT id,lastname,lastmodifieddate from contact limit 10" />
            <foreach doc:name="For Each">
                <logger doc:name="Logger" level="INFO" message="contact: #[payload]" />
            </foreach>
            <set-payload doc:name="Set Payload to formatted output"
                value="Salesforce query returned #[payload.size()] contacts." />
            <logger doc:name="Logger" level="INFO" message="contact: #[payload]" />
        </flow>


我做错了什么?为什么Salesforce不验证并返回访问令牌?我应该如何使用回调URL?

您需要使用Salesforce连接器,这非常简单。 考虑到您尝试的当前方法,没有用户名,并且提供了密码

如果您输入以下代码(从帖子中复制)-

  • 访问令牌URL-它是正确的(我假设您直接点击了prod)
  • 消费者密钥-它是正确的
  • 消费者秘密-这是正确的
  • 用户名-不存在
  • 密码-不存在。尝试使用密码时,请确保将安全性附加到KN(如果已启用)

  • 您是否使用Mule 4进行此连接?你试过Salesforce连接器了吗?