Domanda

Ho testato Twitter e LinkedIn e sembro essere in grado di farti funzionare alla fine, ma non riesco a trovare abbastanza materiale per far funzionare i connettori Google.Quando si utilizza il connettore Google Calendar, sto cercando di raccogliere il token con - #[flowVars['tokenId']] ma il valore esce sempre come null.Sto facendo qualcosa di sbagliato?Qualcuno può aiutare?

Grazie,

Ash.

È stato utile?

Soluzione

ha risposto alla mia domanda per chiunque altro in difficoltà con lo stesso problema -

Gestione dei token OAuth (opzionale)

Configura oggetto oggetti

Per tenere i dati persistenti è necessario memorizzarlo da qualche parte, si consiglia di utilizzare oggetti per questo. Installare un connettore di oggetti. Configuralo come questo nella tua applicazione:

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

Memorizzazione dei token dopo l'autorizzazione

Dopo aver fatto la danza dell'autorizzazione, l'accessoKokenid per il servizio che stai richiamando è disponibile come variabile di flusso chiamata OauthAccessTokokenid. Devi persistere questo ID in modo da poterlo utilizzare in future invocazioni del tuo connettore. Questo esempio mostra come memorizzare questa variabile in oggetti sotto il tasto 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>
.

Usando il tuo token di accesso

Qualsiasi invocazione del connettore deve caricare il token di accesso dall'oggetto e lo farà riferimento. Questo esempio mostra caricandolo da oggetti da oggetti e controllando se è stato impostato, prima di procedere.

<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"/>
.

Una volta che AccessTokenID è disponibile come variabile di flusso, è possibile rivolgerlo nelle operazioni del connettore:

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

Maggiori dettagli qui - http://www.mulesoft.org/documentation/display/34x/using+a+connector+to+Access+an+oauth+api

Ecco come guarda in studio - http://imgur.com/dtlodel

Grazie,

Ash.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top