Интеграция OAuth с Vimeo с использованием Scribe - PullRequest
5 голосов
/ 16 декабря 2011

Мне удалось успешно получить токен доступа от Vimeo с помощью Scribe API.

Однако, когда я пытаюсь получить доступ к защищенному ресурсу, я получаю ошибку недопустимой подписи. Мой OAuthService, который я использую для доступа к защищенному ресурсу, выглядит следующим образом:

OAuthService service = new ServiceBuilder()
    .provider(VimeoApi.class)
    .apiKey(APIKEY)
    .apiSecret(API_SECRET)
    .signatureType(SignatureType.QueryString)
    .build();

Затем я делаю запрос, делая следующее:

  OAuthRequest orequest = new OAuthRequest(Verb.GET, "http://vimeo.com/api/rest/v2");
  orequest.addBodyParameter("method", "vimeo.videos.upload.getQuota");

Это терпит неудачу и говорит мне, что подпись недействительна.

1 Ответ

3 голосов
/ 22 декабря 2011

Проблема в том, что

  orequest.addBodyParameter("method", "vimeo.videos.upload.getQuota");

Затем писец добавил этот параметр к базовой строке, используемой для формирования подписи.Vimeo увидел, что я выполняю GET и что параметр method находится в теле запроса, а не в строке запроса, поэтому он не включил его в базовую строку.Следовательно, ожидаемая Vimeo подпись отличалась от подписи, которую генерировал Scribe.

Я делаю GET, поэтому мне нужно передать этот параметр в строку запроса,

  orequest.addQuerystringParameter("method", "vimeo.videos.upload.getQuota");

Это работает, как если бы:

  OAuthRequest orequest = new OAuthRequest(Verb.POST, "http://vimeo.com/api/rest/v2");
  orequest.addBodyParameter("method", "vimeo.videos.upload.getQuota");
...