Frage

Ich habe Twitter und LinkedIn getestet und es scheint mir, dass ich diese irgendwann zum Laufen bringen kann, aber ich finde einfach nicht genug Material, um die Google-Konnektoren zum Laufen zu bringen.Wenn ich den Google Kalender-Connector verwende, versuche ich, das Token zu sammeln mit: #[flowVars['tokenId']] aber der Wert ergibt sich immer als null.Mache ich etwas falsch?Kann mir bitte jemand helfen?

Danke,

Asche.

War es hilfreich?

Lösung

Ich habe meine eigene Frage an alle anderen beantwortet, die mit dem gleichen Problem zu kämpfen haben:

OAuth-Tokens verwalten (optional)

Konfigurieren Sie ObjectStore

Um die Daten persistent zu halten, müssen Sie sie irgendwo speichern. Es wird empfohlen, dafür ObjectStore zu verwenden.Installieren Sie einen ObjectStore-Connector.Konfigurieren Sie es in Ihrer Anwendung folgendermaßen:

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

Speichern von Token nach der Autorisierung

Nachdem der Autorisierungstanz abgeschlossen ist, ist die accessTokenId für den Dienst, den Sie aufrufen, als Flussvariable mit dem Namen OAuthAccessTokenId verfügbar.Sie müssen diese ID beibehalten, damit Sie sie in zukünftigen Aufrufen Ihres Connectors verwenden können.Dieses Beispiel zeigt, wie diese Variable im ObjectStore unter dem Schlüssel accessTokenId gespeichert wird.

<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>

Verwenden Ihres Zugriffstokens

Bei jedem Aufruf Ihres Connectors muss das Zugriffstoken aus ObjectStore geladen und darauf verwiesen werden.Dieses Beispiel zeigt, wie es aus ObjectStore geladen und überprüft wird, ob es festgelegt wurde, bevor Sie fortfahren.

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

Sobald accessTokenId als Flow-Variable verfügbar ist, können Sie in Ihren Connector-Vorgängen darauf verweisen:

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

Weitere Details hier - http://www.mulesoft.org/documentation/display/34X/Using+a+Connector+to+Access+an+OAuth+API

So sieht es im Studio aus - http://imgur.com/DtLodel

Danke,

Asche.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top