Twitter と LinkedIn をテストしましたが、最終的にはこれらを機能させることができるようですが、Google コネクタを機能させるのに十分な資料が見つかりません。Google カレンダー コネクタを使用する場合、 - でトークンを収集しようとしています#[flowVars['tokenId']]
が、値は常にnull
. 私は何か間違ったことをしていますか?誰か助けてくれませんか?
ありがとう、
灰。
Twitter と LinkedIn をテストしましたが、最終的にはこれらを機能させることができるようですが、Google コネクタを機能させるのに十分な資料が見つかりません。Google カレンダー コネクタを使用する場合、 - でトークンを収集しようとしています#[flowVars['tokenId']]
が、値は常にnull
. 私は何か間違ったことをしていますか?誰か助けてくれませんか?
ありがとう、
灰。
同じ問題に苦しんでいる他の人のために私自身の質問に答えました-
OAuth トークンの管理 (オプション)
ObjectStore の構成
データを永続的に保つには、どこかに保存する必要があります。これには ObjectStore を使用することをお勧めします。ObjectStore コネクタをインストールします。アプリケーションで次のように構成します。
<objectstore:config name="ObjectStore" doc:name="ObjectStore" />
承認後のトークンの保存
認証ダンスが完了すると、呼び出しているサービスの accessTokenId が OAuthAccessTokenId というフロー変数として利用可能になります。今後のコネクタの呼び出しで使用できるように、この ID を永続化する必要があります。この例は、この変数をキー accessTokenId の下の ObjectStore に格納する方法を示しています。
<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>
アクセストークンの使用
コネクタの呼び出しでは、ObjectStore からアクセス トークンをロードして参照する必要があります。この例では、先に進む前に ObjectStore からロードして、設定されているかどうかを確認しています。
<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"/>
accessTokenId がフロー変数として使用可能になったら、コネクタ操作で参照できます。
<google-contacts:get-contacts config-ref="Google_Contacts" accessTokenId="#[flowVars['accessTokenId']]" />
詳細はこちら - http://www.mulesoft.org/documentation/display/34X/Using+a+Connector+to+Access+an+OAuth+API
スタジオでの様子はこちら - http://imgur.com/DtLodel
ありがとう、
灰。