문제

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

감사해요,

금연 건강 증진 협회.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top