2017-06-02 91 views
1
提取

我使用下面的代码授权Facebook API。但m到处错误 - 根异常堆栈跟踪: java.lang.IllegalArgumentException异常:OAuth访问令牌不能从提取:{ “的access_token”: “EAAJmNrYXQ4wBAFJIv69EuGaeUlh8LZCAUsZBLMlp8IDbyn9JLxtOsSVb3pVn6pdJb4mTzjVCrX14fBAoEuHBIOhYBSEyjPBr0l4ahOwef9l7o4BhLtzu0bACBqee7LY48OC51BDQhmea3ZANokY4KOj9HZCN6eAZD”, “token_type”: “承载”, “expires_in”:5112514}骡与Facebook连接器 - OAuth访问令牌无法从

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

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

<flow name="AutorizeFacebook" > 
    <http:listener config-ref="HTTP_Listener_Configuration" path="/facebookauthorize" doc:name="HTTP"/> 
    <facebook:authorize config-ref="Facebook" doc:name="Authorize" /> 
    <set-session-variable doc:name="Save Access Token" value="\#[flowVars['OAuthAccessTokenId']]" variableName="accessTokenId"/> 
    <choice doc:name="Choice"> 
     <when expression="#[flowVars['OAuthAccessTokenId']]!= null"> 
      <logger message="Authorization Successful" level="INFO" 
       doc:name="Logger" /> 
      <set-payload value="Facebook Authorization Successful" 
       doc:name="Set Payload" /> 
     </when> 
     <otherwise> 
      <logger message="Authorization Failed" level="INFO" doc:name="Logger" /> 
      <set-payload value="Facebook Authorization Failed" 
       doc:name="Set Payload" /> 
     </otherwise> 
    </choice 
</flow> 
+0

Facebook最近关闭API V2.2连接器连接到你的工作室,并使用Facebook连接,并与2.3的访问令牌中被改变返回的格式。可能您正在使用的组件尚未能够处理,并需要更新。 – CBroe

+0

So Mule Facebook连接器需要使用修改的Facebook API v2.3访问令牌升级到当前的Anypoint Exchange Facebook连接器吗? – user692585

+0

我不知道,我不使用骡子。但我知道这个“最近”的变化让很多人感到意外。而且由于错误消息说它不能解码明显的JSON,而这就是格式变化的原因,所以我非常肯定这是完全一样的原因。 – CBroe

回答

0

这个错误是由于Facebook的API改变,accessToken在一个JSON字符串返回。

正则表达式的访问令牌是\"access_token\":\"([^&]+?)\"

和过期时间你有\"expires_in\":([^&]+?),")

使用的devkit通过克隆Facebook的回购