gpt4 book ai didi

java - 如何使用适用于 Java 的 Google URL Shortener API 授权 URL 缩短请求

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:09:13 26 4
gpt4 key购买 nike

我正在开发需要发送授权的缩短 URL 请求的 GAE 应用程序,因此它们会出现在用户中 http://goo.gl仪表板。我正在使用适用于 Java 库的 Google URL 缩短器 API (google-api-services-urlshortener-v1-rev12-1.12.0-beta.jar),方法如下:

    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();
}

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

我可以使用 curl 来完成它,它可以正常工作。请求显示在用户仪表板中:

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

我也尝试过添加 Authorization HttpHeader 来请求,但没有成功:

HttpHeaders headers = new HttpHeaders();
headers.put("Authorization", "Bearer {sameAccessToken}");
inserted = shortener.url().insert(toInsert).setRequestHeaders(headers).execute();

最佳答案

我一直做错了。

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

public static Urlshortener newUrlshortener() {

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

}

关于java - 如何使用适用于 Java 的 Google URL Shortener API 授权 URL 缩短请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16388309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com