Mule Studio에서 작동하는 Google 커넥터를 얻을 수 없나요?
-
21-12-2019 - |
문제
나는 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
감사해요,
금연 건강 증진 협회.