I'm trying to connect to Google Analytics in MuleSoft's.
I do following the explantion on in this. I got the example working.
And this is my code for Google:
<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration" />
<http:request-config name="HTTP_Request_Configuration" protocol="HTTPS" host="www.googleapis.com" port="443" basePath="/analytics/v3" doc:name="HTTP Request Configuration">
<oauth2:authorization-code-grant-type clientId="145367832290-fj9v2rk3u0np7grbubseb08fnb8bkqkm.apps.googleusercontent.com" clientSecret="90XF6uj4Ud3nn0nGrGo1njIY" redirectionUrl="http://localhost:8082/callback" tokenManager-ref="Token_Manager_Config">
<oauth2:authorization-request authorizationUrl="https://accounts.google.com/o/oauth2/v2/auth" localAuthorizationUrl="http://localhost:8082/login" scopes="https://www.googleapis.com/auth/analytics">
<oauth2:custom-parameters>
<oauth2:custom-parameter paramName="access_type" value="offline" />
</oauth2:custom-parameters>
</oauth2:authorization-request>
<oauth2:token-request tokenUrl="https://www.googleapis.com/oauth2/v4/token">
<oauth2:token-response accessToken="#[json:access_token]" refreshToken="#[json:refresh_token]" expiresIn="#[json:expires_in]">
<oauth2:custom-parameter-extractor paramName="token_type" value="#[json:token_type]" />
</oauth2:token-response>
</oauth2:token-request>
</oauth2:authorization-code-grant-type>
<http:raml-api-configuration location="api.raml" />
</http:request-config>
<flow name="oauthgoogleFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/" doc:name="HTTP" allowedMethods="GET" />
<http:request config-ref="HTTP_Request_Configuration" path="/data/ga" method="GET" doc:name="HTTP">
<http:request-builder>
<http:query-param paramName="ids" value="ga:134790070" />
<http:query-param paramName="start_date" value="30daysAgo" />
<http:query-param paramName="end_date" value="yesterday" />
<http:query-param paramName="metrics" value="ga:users" />
</http:request-builder>
</http:request>
</flow>
Depending how I import the access token, refresh token. I get a different error:
If I do Ask the tokens with:
Access token = #[json:access_token] & Refresh token =#[json:refresh_token],...
I get the error: Response code 400 mapped as failure.
If I ask it like:
Access token = #[payload.'access_token'] & Refresh token = #[payload.'refresh_token']
I get: Failed getting access token or refresh token from token URL response. See logs for details.
Anyone see the problem?
never mind idiotic mistake! The code checks out. the only mistake I made was:
paramName="start_date" => paramName="start-date"
paramName="end_date" => paramName="end-date"