Goo.gl сокращение ссылок с Scribe - проблемы с аутентификацией
Я пытаюсь использовать сокращение URL с Scribe, основываясь на этом примере.
Однако я хочу убедиться, что могу отслеживать посещения, которые получает мой короткий URL-адрес, а это значит, что он должен быть уникальным. Чтобы создать уникальные ссылки, мне нужно пройти аутентификацию в Google, согласно этому.
Вошел
Ваши ссылки автоматически добавляются в goo.gl, где вы можете отслеживать их использование.
Уникальный короткий URL создается каждый раз, когда длинный URL сокращается.
Выписан
Ваши ссылки не будут отображаться на вашей странице goo.gl.
Один и тот же короткий URL используется повторно каждый раз, когда вы или кто-либо другой сокращает длинный URL-адрес.
В примере oAthRequest
не подписан с oAuthService
, Я обновил это, чтобы он мог подписать запрос и отправить его (как зарегистрированный пользователь).
Вот мой код:
private static final String API_KEY = "XXXXXXXX";
private static final String API_URL = "https://www.googleapis.com/urlshortener/v1/url";
private static final String API_URL_WITH_KEY = API_URL + "?key=" + API_KEY;
public TrackableLink createTrackableLink(String longUrl) {
OAuthService oAuthService = new ServiceBuilder()
//Google Api Provider - Google's URL Shortener API is part of Google Platform APIs
.provider(GoogleApi.class)
/*
Using "anonymous" as API Key & Secret because Google's URL Shortener service
does not necessarily requires App identification and/or User Information Access
*/
.apiKey("anonymous")
.apiSecret("anyonymous")
//OAuth 2.0 scope for the Google URL Shortener API
.scope("https://www.googleapis.com/auth/urlshortener")
//build it!
.build();
Token requestToken = oAuthService.getRequestToken();
OAuthRequest request = new OAuthRequest(Verb.POST, API_URL_WITH_KEY);
request.addHeader("Content-Type", "application/json");
request.addPayload(new JSONObject().put(RESPONSE_LONG_URL, longUrl)
.toString());
oAuthService.signRequest(requestToken, request);
Response response = request.send();
JSONObject json = new JSONObject(response.getBody());
String shortUrl = json.getString(RESPONSE_SHORT_URL);
TrackableLink tl = new TrackableLink(longUrl, shortUrl);
return tl;
}
Я заменяю "анонимные" данные своими значениями с веб-сайта Google API и получаю следующее исключение:
Невозможно извлечь токен и секрет из этого: "Клиент не зарегистрирован: 7629638329XXXXXXXXXXX.apps.googleusercontent.com
Я не уверен, что именно я делаю здесь неправильно. Я перепробовал почти все комбинации значений для ключа / секрета из различных ключей, которые дает мне консоль Google. Может ли это быть вызвано чем-то другим, кроме того, что связано с ключом API?
Любые идеи, почему я получаю потребителю не зарегистрированную ошибку? В моей учетной записи Google я включил API.