Question

J'ai testé Twitter et LinkedIn et il semble que je puisse éventuellement les faire fonctionner, mais je ne trouve tout simplement pas suffisamment de matériel pour faire fonctionner les connecteurs Google.Lorsque j'utilise le connecteur Google Calendar, j'essaie de collecter le jeton avec - #[flowVars['tokenId']] mais la valeur apparaît toujours comme null.Est-ce que je fais quelque chose de mal?Puis-je avoir une aide s'il vous plait?

Merci,

Cendre.

Était-ce utile?

La solution

J'ai répondu à ma propre question pour toute autre personne confrontée au même problème -

Gestion des jetons OAuth (facultatif)

Configurer ObjectStore

Pour conserver les données persistantes, vous devez les stocker quelque part, il est recommandé d'utiliser ObjectStore pour cela.Installez un connecteur ObjectStore.Configurez-le comme ceci dans votre application :

<objectstore:config name="ObjectStore" doc:name="ObjectStore" />

Stockage des jetons après autorisation

Une fois la danse d'autorisation terminée, l'accessTokenId du service que vous appelez est disponible sous forme de variable de flux appelée OAuthAccessTokenId.Vous devez conserver cet ID afin de pouvoir l'utiliser lors des futurs appels de votre connecteur.Cet exemple montre comment stocker cette variable dans ObjectStore sous la clé accessTokenId.

<flow name="authorize-google" doc:name="authorize-google">
        <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" path="authorize" doc:name="HTTP"/>
        <google-contacts:authorize config-ref="Google_Contacts" doc:name="Authorize GContacts"/>
        <objectstore:store config-ref="ObjectStore" key="accessTokenId" value-ref="#[flowVars['OAuthAccessTokenId']]" overwrite="true" doc:name="ObjectStore"/>    
</flow>

Utiliser votre jeton d'accès

Tout appel de votre connecteur doit charger le jeton d'accès depuis ObjectStore et le référencer.Cet exemple montre son chargement à partir d'ObjectStore et la vérification s'il a été défini avant de continuer.

<enricher target="#[flowVars['accessTokenId']]" doc:name="Message Enricher">
            <objectstore:retrieve config-ref="ObjectStore" key="accessTokenId" defaultValue-ref="#['']" doc:name="Get AccessToken"/>
</enricher>
<expression-filter expression="#[flowVars['accessTokenId'] != '']" doc:name="Is Access Token Set"/>

Une fois que accessTokenId est disponible en tant que variable de flux, vous pouvez le référencer dans vos opérations de connecteur :

<google-contacts:get-contacts config-ref="Google_Contacts" accessTokenId="#[flowVars['accessTokenId']]" />

Plus de détails ici - http://www.mulesoft.org/documentation/display/34X/Using+a+Connector+to+Access+an+OAuth+API

Voici à quoi ça ressemble en studio - http://imgur.com/DtLodel

Merci,

Cendre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top