使用OAuth令牌查看Vimeo私有视频

时间:2012-09-28 15:30:08

标签: java oauth vimeo http-status-code-401 scribe

任何人都可以使用scribe在Vimeo API中提供帮助吗?我的目标是访问私人视频(我上传),而不必强迫用户输入密码(此过程应在后台完成)。

从我的理解/从研究中推断是必要的:

  1. 使用oAuth协议并通过以下链接请求申请授权:

    https://vimeo.com/oauth/authorize?oauth_token=XXXX

    此操作成功执行,响应数据发送到回调URL, 类似的东西:

    http://127.0.0.1:8001/XPTO.html?oauth_token=AUTH_TOKEN_EXAMPLE&oauth_verifier=VERIFIIER__EXAMPLE"

  2. According to Brad Dougherty(Vimeo API Staff)可以做类似的事情

      

    如果您自己完成OAuth流程,则可以保存该令牌并使用该令牌进行通话。

  3. 我正在使用此代码:

    service = new ServiceBuilder().provider(VimeoApi.class)
                    .apiKey("API_KEY_EXAMPLE")
                    .apiSecret("API_SECRET_EXAMPLE")
                    .build();
    
    OAuthRequest request = new OAuthRequest(Verb.GET,
            "http://vimeo.com/api/rest/v2?video_id=50305416");
    
    request.addQuerystringParameter("format", "json");
    request.addQuerystringParameter("method", "vimeo.videos.getInfo");
    
    String oauth_verifier=VERIFIER__EXAMPLE;
    Verifier verifier = new Verifier(oauth_verifier);
    
    //I've tried differents combination to create this token
    //I believe that my problem is HERE
    //One unsuccessfully try: Token requestToken = service.getRequestToken();
    Token requestToken = new Token(
            AUTH_TOKEN_EXAMPLE,
            API_SECRET_EXAMPLE);
    
    Token token = service.getAccessToken(requestToken, verifier);
    
    service.signRequest(token, request); 
    Response response = request.send();
    

    我遇到以下错误:

      

    响应正文不正确。无法从中提取令牌和秘密:'401 Unauthorized - 无效签名 - 传递的oauth_signature无效。'

    什么在逃避我?这是正确的方法,对吗?

2 个答案:

答案 0 :(得分:1)

保持视频隐私的另一种方法是将“隐私权/设置”选项仅限密码的用户更改为“隐藏此视频来自Vimeo.com“”仅限于我选择的网站

您可能从中受益的原因是您可以控制可以嵌入视频的网站。你甚至可以使用普通的iframe嵌入你的应用程序并跳过整个API调用,如果你想要的是在你的网站上显示你的视频而不是其他地方。但是如果你仍然需要通过API进行调用,至少你没有密码问题。

这不是直接回答你的问题,而是解决问题的另一种方法。

答案 1 :(得分:-1)

首先要注意发布视频所需的权限,因此在尝试验证它们之前。第二种想法是将所有内容存储在内存或本地存储中。您可以向其插入属性以直接启动视频