首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Google URL Shortener API for Java授权URL缩短请求

如何使用Google URL Shortener API for Java授权URL缩短请求
EN

Stack Overflow用户
提问于 2013-05-06 03:31:49
回答 1查看 2.3K关注 0票数 3

我正在开发GAE应用程序,它需要发送授权的shorten请求,以便它们显示在用户http://goo.gl仪表板中。我使用Google URL shortener API for Java library (google-api-services-urlshortener-v1-rev12-1.12.0-beta.jar)的方式如下:

代码语言:javascript
复制
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
      throws IOException {

    Urlshortener shortener = newUrlshortener();
    Url toInsert = new Url().setLongUrl("http://www.google.com");
    Url inserted = new Url();
    try {
         inserted = shortener.url().insert(toInsert).setOauthToken("{accessToken}").execute();
      } catch (Exception e) {
     resp.sendError(404, e.getMessage());
      }

  }

public static Urlshortener newUrlshortener() {
    AppIdentityCredential credential =
        new AppIdentityCredential(Arrays.asList(UrlshortenerScopes.URLSHORTENER));
    return new Urlshortener.Builder(new UrlFetchTransport(), new JacksonFactory(), credential)
        .build();
  }

我的请求得到处理,我可以检索短网址,但它不会显示在用户http://goo.le仪表板中。

我可以使用curl来做这件事,它的工作方式应该是这样的。请求显示在用户仪表板中:

代码语言:javascript
复制
curl https://www.googleapis.com/urlshortener/v1/url  -H 'Content-Type: application/json' -H 'Authorization: Bearer {sameAccessToken}'  -d '{"longUrl": "http://www.google.com/"}'

我也试过在request中添加授权HttpHeader,但不起作用:

代码语言:javascript
复制
HttpHeaders headers = new HttpHeaders();
        headers.put("Authorization", "Bearer {sameAccessToken}");
        inserted = shortener.url().insert(toInsert).setRequestHeaders(headers).execute();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-07 05:55:21

我一直在用错误的方式去做。

正确的方法是创建Credential对象并使用setAccessToken()方法设置访问令牌。

代码语言:javascript
复制
public static Urlshortener newUrlshortener() {

    Credential credential = new Credential();
    credential.setAccessToken("{accessToken}");
    return new Urlshortener.Builder(new UrlFetchTransport(), new JacksonFactory(), credential)
    .build();

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16388309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档