OAuth使用Scribe与Vimeo集成

时间:2011-12-15 22:30:19

标签: java oauth vimeo scribe

我已经能够使用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");

此操作失败并告诉我签名无效。

1 个答案:

答案 0 :(得分: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");