带划线器的OAuth Vimeo(Java)

带划线器的OAuth Vimeo(Java),java,oauth,vimeo,scribe,Java,Oauth,Vimeo,Scribe,注意:您可以通过将我引导到一个很好地解释如何与web服务交互的地方来帮助我。但是,在这个具体问题上的帮助将不胜感激 我很难理解OAuth是如何工作的。我正在尝试开发一个桌面应用程序,它将把一堆视频上传到Vimeo上的帐户。我已经试着修补了一点和它的。不幸的是,Scribe没有Vimeo示例,所以我一直在尝试修改Facebook示例,使其适用于Vimeo。关于这一切如何运作的信息很少(我已经能够1:找到,2:理解)。以下是关于代码和错误的信息: public class VimeoTest {

注意:您可以通过将我引导到一个很好地解释如何与web服务交互的地方来帮助我。但是,在这个具体问题上的帮助将不胜感激

我很难理解OAuth是如何工作的。我正在尝试开发一个桌面应用程序,它将把一堆视频上传到Vimeo上的帐户。我已经试着修补了一点和它的。不幸的是,Scribe没有Vimeo示例,所以我一直在尝试修改Facebook示例,使其适用于Vimeo。关于这一切如何运作的信息很少(我已经能够1:找到,2:理解)。以下是关于代码和错误的信息:

public class VimeoTest
{
  private static final String NETWORK_NAME = "Vimeo";
  private static final Token EMPTY_TOKEN = null;

  public static void main(String[] args)
  {
    // Replace these with your own api key and secret
    String apiKey = "MYAPIKEY";
    String apiSecret = "MYAPISECRET";
    OAuthService service = new ServiceBuilder()
                                  .provider(VimeoApi.class)
                                  .apiKey(apiKey)
                                  .apiSecret(apiSecret)
                                  .build();
    Scanner in = new Scanner(System.in);

    System.out.println("=== " + NETWORK_NAME + "'s OAuth Workflow ===");
    System.out.println();
    OAuthRequest orequest = new OAuthRequest(Verb.GET, "http://vimeo.com/api/rest/v2");
    orequest.addQuerystringParameter("method", "vimeo.test.null");
    Response send = orequest.send();
    System.out.println(send.getBody());

    // Obtain the Authorization URL
    System.out.println("Fetching the Authorization URL...");
    Token requestToken = service.getRequestToken();

    //Breaks on the line above.
    //But I think it's because the orequest.send() returned a 100 error code

    String authorizationUrl = service.getAuthorizationUrl(requestToken);
    System.out.println("Got the Authorization URL!");
    System.out.println("Now go and authorize Scribe here:");

    //I do NOT want to have to do this. Is there any other way I can have this authorize without going to a web browser to do this?

    System.out.println(authorizationUrl);
    System.out.println("And paste the authorization code here");
    System.out.print(">>");
    Verifier verifier = new Verifier(in.nextLine());
    System.out.println();
以下是输出和错误:

=== Vimeo's OAuth Workflow ===

1.0
<?xml version="1.0" encoding="utf-8"?>
<rsp generated_in="0.0069" stat="fail">
  <err code="100" expl="The API key passed was not valid" msg="Invalid API Key" />
</rsp>
Fetching the Authorization URL...
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/codec/binary/Base64
    at org.scribe.services.HMACSha1SignatureService.doSign(HMACSha1SignatureService.java:47)
    at org.scribe.services.HMACSha1SignatureService.getSignature(HMACSha1SignatureService.java:33)
    at org.scribe.oauth.OAuth10aServiceImpl.getSignature(OAuth10aServiceImpl.java:118)
    at org.scribe.oauth.OAuth10aServiceImpl.addOAuthParams(OAuth10aServiceImpl.java:63)
    at org.scribe.oauth.OAuth10aServiceImpl.getRequestToken(OAuth10aServiceImpl.java:43)
    at autouploadermodel.VimeoTest.main(VimeoTest.java:38)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.codec.binary.Base64
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    ... 6 more
Java Result: 1
==Vimeo的OAuth工作流===
1
正在获取授权URL。。。
线程“main”java.lang.NoClassDefFoundError中出现异常:org/apache/commons/codec/binary/Base64
位于org.scribe.services.HMACSha1SignatureService.doSign(HMACSha1SignatureService.java:47)
位于org.scribe.services.HMACSha1SignatureService.getSignature(HMACSha1SignatureService.java:33)
位于org.scribe.oauth.OAuth10aServiceImpl.getSignature(OAuth10aServiceImpl.java:118)
位于org.scribe.oauth.OAuth10aServiceImpl.addOAuthParams(OAuth10aServiceImpl.java:63)
位于org.scribe.oauth.OAuth10aServiceImpl.getRequestToken(OAuth10aServiceImpl.java:43)
在autouploadermodel.VimeoTest.main(VimeoTest.java:38)中
原因:java.lang.ClassNotFoundException:org.apache.commons.codec.binary.Base64
在java.net.URLClassLoader$1.run(URLClassLoader.java:366)
在java.net.URLClassLoader$1.run(URLClassLoader.java:355)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(URLClassLoader.java:354)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:423)
位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 还有6个
Java结果:1

无论如何,我敢打赌这很简单,但我不知道如何与web服务交互。谢谢你的帮助

您需要在类路径中包含

您需要在类路径中包含

这很奇怪。今天早上,我试着包括apache commons编解码器(实际上我觉得自己很笨,因为我不知道怎么做,但我找到了1.6版的jar,并将其作为一个库包括在内),然后我
import org.apache.commons.codec.net.*。然后我运行它,它把我带到需要在Vimeo中授权应用程序的地方。我复制并粘贴Vimeo给我的代码,并在这一行上得到一个空指针:
Token-accessToken=service.getAccessToken(空的\u-Token,验证器)
EMPTY_TOKEN
被声明为
null
,因此这是有意义的,但这就是示例中的内容。。。我真的不明白。哦,另一件奇怪的事是,如果我删除了编码解码器的导入,它就可以正常工作了。。。这是我说的奇怪的部分。所以,基本上,我的代码看起来和昨天出错时完全一样,但这次它更进一步了。。。我的API密钥几天前就被批准了,所以我无法解释为什么会这样,但是。。。是 啊谢谢你的帮助!只是再次运行它,它仍然说我的API密钥无效,但它得到了授权url。这对我来说没有任何意义。您的代码没有到达apache编解码器导入异常可能是因为以前发生过空指针异常。在类路径中确实需要commons编解码器。时期如果除此之外你还遇到了其他问题,请提出一个新问题,我很乐意帮助你:)我很抱歉,巴勃罗。我听起来一定很傻,但我不知道(或者找个地方解释)如何将它添加到我的类路径中。我以前在环境变量中向类路径添加过一些东西,但我不明白自己在做什么(显然我现在仍然不明白)。你能帮我吗:-/P.S.谢谢你的抄写员!阅读关于如何做OAuth的文章使它看起来非常复杂。一旦我知道如何使用scribe,我想这将是一个巨大的帮助:)这是奇怪的。今天早上,我试着包括apache commons编解码器(实际上我觉得自己很笨,因为我不知道怎么做,但我找到了1.6版的jar,并将其作为一个库包括在内),然后我
import org.apache.commons.codec.net.*。然后我运行它,它把我带到需要在Vimeo中授权应用程序的地方。我复制并粘贴Vimeo给我的代码,并在这一行上得到一个空指针:
Token-accessToken=service.getAccessToken(空的\u-Token,验证器)
EMPTY_TOKEN
被声明为
null
,因此这是有意义的,但这就是示例中的内容。。。我真的不明白。哦,另一件奇怪的事是,如果我删除了编码解码器的导入,它就可以正常工作了。。。这是我说的奇怪的部分。所以,基本上,我的代码看起来和昨天出错时完全一样,但这次它更进一步了。。。我的API密钥几天前就被批准了,所以我无法解释为什么会这样,但是。。。是 啊谢谢你的帮助!只是再次运行它,它仍然说我的API密钥无效,但它得到了授权url。这对我来说没有任何意义。您的代码没有到达apache编解码器导入异常可能是因为以前发生过空指针异常。在类路径中确实需要commons编解码器。时期如果除此之外你还遇到了其他问题,请提出一个新问题,我很乐意帮助你:)我很抱歉,巴勃罗。我听起来一定很傻,但我不知道(或者找个地方解释)如何将它添加到我的类路径中。我以前在环境变量中向类路径添加过一些东西,但我不明白自己在做什么(显然我现在仍然不明白)。你能帮我吗:-/P.S.谢谢你的抄写员!阅读关于如何做OAuth的文章使它看起来非常复杂。一旦我知道如何使用scribe,我想这将是一个h