不能提取令牌和秘密从这样的:“401未授权 - 无效签名

问题描述:

我试图通过scribejava访问到Vimeo API。我收到这个错误。不能提取令牌和秘密从这样的:“401未授权 - 无效签名

线程 “main” com.github.scribejava.core.exceptions.OAuthException异常:响应主体是不正确。无法从中提取令牌和密码:'401未授权 - 无效签名 - 传递的oauth_signature无效。 这是代码片段

private static final String PROTECTED_RESOURCE_URL = "http://vimeo.com/oauth/authorize?oauth_token=%s"; 

final OAuth10aService service = new ServiceBuilder() 
      .apiKey(myApiKey) 
      .apiSecret(myapiSecret) 
      .callback("http://fesal.hostkda.com/5-youtube-video/") 
      .build(VimeoApi.instance()); 

    final OAuth1RequestToken requestToken = service.getRequestToken(); 


    // Trade the Request Token and Verfier for the Access Token 
    final OAuth1AccessToken accessToken = service.getAccessToken(requestToken, oauthVerifier); 

    // Now let's go and ask for a protected resource! 
    final OAuthRequest request = new OAuthRequest(Verb.GET, PROTECTED_RESOURCE_URL); 
    service.signRequest(accessToken, request); 
    final Response response = service.execute(request); 
    System.out.println(response.getBody()); 

scribejava的virsion:4.0.0

划线的原因不支持VIMEO API,我已自定义创建一个:这是代码:

public class VimeoApi extends DefaultApi10a { 
private static final String AUTHORIZATION_URL = "https://api.vimeo.com/oauth/authorize"; 

private static class InstanceHolder { 

    private static final VimeoApi INSTANCE = new VimeoApi(); 
} 

public static VimeoApi instance() { 
    return InstanceHolder.INSTANCE; 
} 

@Override 
public String getAccessTokenEndpoint() { 
    return "http://vimeo.com/oauth/access_token"; 
} 

@Override 
public String getRequestTokenEndpoint() { 
    return "http://vimeo.com/oauth/request_token"; 
} 

@Override 
public String getAuthorizationUrl(OAuth1RequestToken requestToken) { 
    return String.format(AUTHORIZATION_URL, requestToken.getToken()); 
}} 

我愿意得到帮助从u

的OAuth 1是Vimeo的API中不再支持。您需要使用OAuth 2,如下所述:https://developer.vimeo.com/api/authentication