質問

TwitterとLinkedInをテストしました、そして、私はこれらの作業を最終的に取り入れることができるようですが、Googleコネクタを機能させるのに十分な素材が見つかりません。Google Calendar Connectorを使用するときは、-#[flowVars['tokenId']]でトークンを収集しようとしていますが、値は常にnullとして出てきます。私は何か悪いことをしていますか?誰かが助けてくれる?

ありがとう、

灰。

役に立ちましたか?

解決

同じ問題に苦労している他の誰かのために私自身の質問に回答しました -

OAuthトークンの管理(オプション)

ObjectStore

を設定します

データを永続的に保つためにどこかに保存する必要があります。これはオブジェクトストアを使用することをお勧めします。オブジェクトストアコネクタを取り付けます。アプリケーションのように設定してください。

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

承認後のトークンの保存

承認ダンスが行われた後、呼び出し中のサービスのAccessTokenIDは、OAuthAccessTokenIDというフロー変数として利用できます。コネクタの将来の呼び出しで使用できるように、このIDを永続的に保持する必要があります。次の例では、この変数をキー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>
.

あなたのアクセストークンを使う

コネクタの呼び出しは、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

ありがとう、

灰。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top