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

60

有人能够帮我使用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. 根据Brad Dougherty(Vimeo API工作人员)的说法,可以做到这样的事情

    如果您按照自己的身份进行OAuth过程,则可以保存该令牌并使用它来发出调用。

我正在使用这段代码:

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 - Invalid signature - The oauth_signature passed was not valid.'

我忽略了些什么?这是正确的方法,对吗?


4
您无法自行创建RequestToken。您必须使用service.getRequestToken() - Pablo Fernandez
好的Pablo,现在我可以发出请求了=)你能帮我解决问题的第二部分吗?我不想让用户输入密码(这是一个面向多个用户的Web应用程序)...为了获取授权令牌(https://vimeo.com/oauth/authorize?oauth_token=XXXX),用户必须登录:(我该如何避免这种情况?由于我不能使用简单的Vimeo API来检索私人视频(类似于http://vimeo.com/api/rest/v2?video_id=50305416)...我该如何使用高级视频获取视频(我没有找到类似的方法=( )谢谢。 - JMarques
我已经解决了我的第一个问题(http://stackoverflow.com/questions/12672181/vimeo-api-authorizationurl-without-login)=)唯一让我在天堂和地狱之间徘徊的步骤是...如何获取私人视频? - JMarques
@JMarques 我也遇到了同样的问题。如果你设法解决了第二个部分,请也帮帮我。 - Arun Kumar
2
你可以将oauth令牌存储在应用程序的某个地方(配置文件或内存中),每当任何用户请求查看私人视频时,自动发送令牌。这是假设Vimeo最初提供给您的令牌不会过期。如果它过期了,您可以在后台运行一个进程来获取新的令牌(可能是为应用程序设置的帐户),并使用新的令牌。 - TR1
1
要获取私人视频,您必须进行身份验证并分配读取权限。我认为参数是x_auth_permission。 - davidcondrey
2个回答

1
另一种保护视频隐私的方法是在“隐私/设置”中将选项“只有密码的人”更改为“从Vimeo.com隐藏此视频”和“仅限我选择的网站”。你之所以会从中受益,是因为你可以控制可以嵌入视频的网站。甚至可以在你的应用程序上使用普通的iframe嵌入,跳过整个API调用,如果你想在你的网站上显示视频而不是其他地方。但是,如果你仍然需要通过API进行调用,至少你不会遇到密码问题。这并没有直接回答你的问题,但是是解决问题的另一种替代方法。

0

首先要注意您需要发布视频的权限,因此在尝试进行身份验证之前,请确保获得了相应的权限。其次,将所有内容存储在内存或本地存储中。您可以向其插入属性以直接启动视频。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接