получение ошибки 303 неверной подписи при использовании vimeo apis - PullRequest
0 голосов
/ 13 февраля 2012

.. У меня ошибка неверной подписи. Может ли кто-нибудь помочь мне с этим? Я что-то упустил?Oauth_token - это токен доступа, который я получаю после авторизации

URL: vimeo.com/api/rest/v2? Method = vimeo.oauth.checkAccessToken

Базовая строка: GET & http% 3A% 2F% 2Fvimeo.com% 2Fapi% 2Frest% 2Fv2 & метод% 3Dvimeo.oauth.checkAccessToken% 26oauth_consumer_key% 3D763ebd960af20c4844be38d388299f62% 26oauth_nonce% 3D-5297335925725406200% 26oauth_signature_method% 3DHMAC-SHA1% 26oauth_timestamp% 3D1329134906% 26oauth_token% 3Da61b496a94ebdaa151f1b757bdd54ad7% 26oauth_version% 3D1.0

ЗАГОЛОВОК: OAuth oauth_consumer_key = "763ebd960af20c4844be38d388299f62", oauth_nonce = "- 5297335925725406200", oauth_signature = "0xBOoOtHG% 2BoiAImx3no0bUTTFeU% 3D", oauth_signature_method = "HMAC-SHA1", oauth_timestamp = "1329134906", oauth_token = "a61b496a94ebdaa151f1b757bdd54ad7", oauth_version =" 1.0 "

Ответы [ 2 ]

0 голосов
/ 01 октября 2012

Ребята, у меня почти схожая проблема.

Я работал с базовыми вызовами, и все работало нормально.Но я понял, что только основной позволяет запросить 60 видео.20 видео на страницу.Ниже приведена ссылка, по которой я пытался реализовать пейджинг с использованием базовой, но код работает только для трех страниц, то есть для 30 видео.

http://projects.tk -fn.com / controls / Vimeo / BKBVideoPage-Backup.html

Затем я попробовал расширенный API, который позволяет 50 на страницу и неограниченное количество видео.Я смог сделать всю эту реализацию OAuth, но проблема в том, что теперь URL работает нормально, когда я помещаю его в браузер, но не работает, когда я пытаюсь сделать вызов JSONP ajax.: (

http://projects.tk -fn.com / controls / Vimeo / OAuthSimple.html

Для тех, кто знает. OAuth принимает все необходимые параметры, такие как Consumer_Key, Secret, NONE (случайная строка), отметка времени, oauth_signature (созданная с использованием всего URL).

Я нашел класс по имени Simple OAuth и использовал его.

ОБНОВИТЬ страницукаждый раз получать правильный URL. URL не может использоваться более одного раза. Vimeo будет ожидать новый URL при каждом запросе.

0 голосов
/ 19 апреля 2012

Не знаю, есть ли у вас проблемы с этим, но вы можете попробовать scribe .Я разрабатывал приложение для Vimeo и в значительной степени полагаюсь на Scribe, чтобы подписывать и отправлять мои запросы.Вот пример для аутентификации, подписания и отправки запроса:

  private static OAuthService service;
  private static Token accessToken;
  private static String newline = System.getProperty("line.separator");

  public static void main(String[] args) throws Exception {
    // Replace these with your own api key and secret

    String apiKey = "YOUR_API_KEY"; //Give your own API Key
    String apiSecret = "YOUR_API_SECRET"; //Give your own API Secret
    String vimeoAPIURL = "http://vimeo.com/api/rest/v2";
    service = new ServiceBuilder().provider(VimeoApi.class).apiKey(apiKey).apiSecret(apiSecret).build();

    OAuthRequest request;
    Response response;

    accessToken = new Token("AN_INVALID_TOKEN_WILL", "REQUIRE_GETTING_A_NEW_ONE"); //Copy the new token you get here

    accessToken = checkToken(vimeoAPIURL, accessToken, service);
    if (accessToken == null) {
      return;
    }
 }

  /**
  * Checks the token to make sure it's still valid. If not, it pops up a dialog asking the user to
  * authenticate.
  */
  private static Token checkToken(String vimeoAPIURL, Token vimeoToken, OAuthService vimeoService) {
    if (vimeoToken == null) {
      vimeoToken = getNewToken(vimeoService);
    } else {
      OAuthRequest request = new OAuthRequest(Verb.GET, vimeoAPIURL);
      request.addQuerystringParameter("method", "vimeo.oauth.checkAccessToken");
      Response response = signAndSendToVimeo(request, "checkAccessToken", true);
      if (response.isSuccessful()
              && (response.getCode() != 200 || response.getBody().contains("<err code=\"302\"")
              || response.getBody().contains("<err code=\"401\""))) {
        vimeoToken = getNewToken(vimeoService);
      }
    }
    return vimeoToken;
  }

  /**
  * Gets authorization URL, pops up a dialog asking the user to authenticate with the url and the user
  * returns the authorization code
  *
  * @param service
  * @return
  */
  private static Token getNewToken(OAuthService service) {
    // Obtain the Authorization URL
    Token requestToken = service.getRequestToken();
    String authorizationUrl = service.getAuthorizationUrl(requestToken);
    do {
      String code = JOptionPane.showInputDialog("The token for the account (whatever)" + newline
              + "is either not set or is no longer valid." + newline
              + "Please go to the URL below and authorize this application." + newline
              + "Paste the code you're given on top of the URL here and click \'OK\'" + newline
              + "(click the 'x' or input the letter 'q' to cancel." + newline
              + "If you input an invalid code, I'll keep popping up).", authorizationUrl + "&permission=delete");
      if (code == null) {
        return null;
      }
      Verifier verifier = new Verifier(code);
      // Trade the Request Token and Verfier for the Access Token
      System.out.println("Trading the Request Token for an Access Token...");
      try {
        Token token = service.getAccessToken(requestToken, verifier);
        System.out.println(token); //Use this output to copy the token into your code so you don't have to do this over and over.
        return token;
      } catch (OAuthException ex) {
        int choice = JOptionPane.showConfirmDialog(null, "There was an OAuthException" + newline
                + ex + newline
                + "Would you like to try again?", "OAuthException", JOptionPane.YES_NO_OPTION);
        if (choice == JOptionPane.NO_OPTION) {
          break;
        }
      }
    } while (true);
    return null;
  }

  /**
  * Signs the request and sends it. Returns the response.
  *
  * @param request
  * @return response
  */
  public static Response signAndSendToVimeo(OAuthRequest request) throws org.scribe.exceptions.OAuthException {
    service.signRequest(accessToken, request);
    Response response = request.send();
    return response;
  }
...