Können keine Google-Konnektoren in Mule Studio zum Laufen gebracht werden?
-
21-12-2019 - |
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.
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.