Firebase动态链接Rest API - 400错误请求

时间:2018-04-03 19:05:05

标签: java firebase-dynamic-links

我正在使用google url shortener api过渡现有服务,尝试使用Firebase动态链接。我已经链接了一个来自Google云平台的项目,并设置了一个"虚拟" Android应用程序,以便我可以拥有动态链接的应用程序域。我正在尝试使用REST API来缩短不能由第三方处理的长网址的网址。我尝试使用以下方式发送:

ObjectMapper mapper = new ObjectMapper();
HttpPost httpPost = new HttpPost("https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=****");
FirebaseDynamicLinkInfo dynamicLinkRequest = new FirebaseDynamicLinkInfo();
dynamicLinkRequest.setDynamicLinkDomain("zw5yb.app.goo.gl");
dynamicLinkRequest.setLink(assetUrl);
httpPost.setEntity(new StringEntity(mapper.writeValueAsString(dynamicLinkRequest)));
httpPost.setHeader("Accept", "application/json");
httpPost.setHeader("Content-type", "application/json");
responseBody = httpClient.execute(httpPost, responseHandler);

当我将请求发布到API时(在httpCLient.execute行上,我收到400 Bad Request。我已经仔细检查了我的api-key。我也尝试使用longDynamicLink参数,它获得了400错误的请求响应。

我可能出错的任何想法?

谢谢,

1 个答案:

答案 0 :(得分:0)

我在这个上联系了Google支持,我没有在深层链接上编写我的查询字符串参数。对链接进行编码后,请求成功。我回过头来使用传递json,它只有一个longDynamicLink属性(而不是我原来帖子中的dynamicLinkInfo对象)。这是它的样子:

(node:30097) UnhandledPromiseRejectionWarning: SyntaxError: Unexpected token u in JSON at position 0
    at JSON.parse (<anonymous>)
    at run (/Users/aakins/Projects/performance/test.js:48:34)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:160:7)