5

Scribe APIを使用して、Vimeoからアクセストークンを正常に取得できました。

ただし、保護されたリソースにアクセスしようとすると、無効な署名エラーが発生します。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");

これは失敗し、署名が無効であることを教えてくれます。

4

1 に答える 1

3

問題は、

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

次に、Scribeは、署名の形成に使用されるベース文字列にこのパラメーターを追加しました。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");
于 2011-12-21T22:13:53.767 に答える