使用MuleSoft的HTTPS身份验证连接到谷歌分析

时间:2016-12-05 13:36:42

标签: https oauth-2.0 google-analytics-api mule-studio

我正在尝试连接到MuleSoft的Google Analytics。
我遵循explantion on in this。我得到了这个例子。

这是我的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>

根据我导入访问令牌的方式,刷新令牌。我得到了一个不同的错误:

如果我用以下方式询问代币:

  

访问令牌=#[json:access_token]&amp;刷新令牌=#[json:refresh_token],...

我收到错误:Response code 400 mapped as failure.

如果我这样问的话:

  

访问令牌=#[payload.'access_token']&amp;刷新令牌=#[payload.'refresh_token']

我得到:Failed getting access token or refresh token from token URL response. See logs for details.

有人看到问题吗?

1 个答案:

答案 0 :(得分:0)

从不介意愚蠢的错误!代码签出。我犯的唯一错误是:

paramName =“start_date”=&gt; PARAMNAME = “开始日期”

paramName =“end_date”=&gt; PARAMNAME = “结束日期”