2017-06-02 7 views
1

J'utilise le code ci-dessous pour autoriser l'API Facebook. mais obtiens erreur - racine trace de la pile d'exception: java.lang.IllegalArgumentException: jeton d'accès OAuth n'a pas pu être extraite de: { "access_token": "EAAJmNrYXQ4wBAFJIv69EuGaeUlh8LZCAUsZBLMlp8IDbyn9JLxtOsSVb3pVn6pdJb4mTzjVCrX14fBAoEuHBIOhYBSEyjPBr0l4ahOwef9l7o4BhLtzu0bACBqee7LY48OC51BDQhmea3ZANokY4KOj9HZCN6eAZD", "token_type": "porteur", "expires_in": 5.112.514}Mule avec connecteur Facebook - Le jeton d'accès OAuth n'a pas pu être extrait de

<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 a fermé récemment API v2.2 et 2.3 avec le format du jeton d'accès est retourné dans a été changé. Le composant que vous utilisez n'est probablement pas encore capable de le faire et doit être mis à jour. – CBroe

+0

Donc, le connecteur Facebook Mule doit être mis à niveau avec un jeton d'accès Facebook API v2.3 modifié dans le connecteur Facebook Anypoint Exchange actuel? – user692585

+0

Je ne sais pas, je n'utilise pas mule. Mais je sais que ce changement «récent» a surpris beaucoup de gens. Et puisque le message d'erreur indique qu'il ne peut pas décoder ce qui est manifestement JSON, et c'est à cela que le format a été changé, je suis à peu près sûr que c'est exactement la même raison. – CBroe

Répondre

0

Cette erreur est due au changement de l'API Facebook, accessToken est retourné dans une chaîne JSON.

Le Regex pour le jeton d'accès est \"access_token\":\"([^&]+?)\"

et pour le temps d'expiration vous avez \"expires_in\":([^&]+?),")

Utilisez DEVKIT installer connecteur à votre studio en clonant facebook repo

  • connecteur Clone mise à jour facebook projet à partir de https://github.com/mulesoft/facebook-connector
  • importer au studio en tant que connecteur d'un projet
  • connecteur installer à votre studio et connecteur facebook dans vos flux