我尝试在我的应用程序中登录到vimeo上传视频,我在vimeo上创建的应用程序已经获得批准。
上传访问 批准用于下列账户:您的帐户
我使用AFNetworking和AFOAuth1Client (https://github.com/AFNetworking/AFOAuth1Client),但也尝试了AFXAuthClient (https://github.com/romaonthego/AFXAuthClient)。
将AFOAuth1Client与以下代码一起使用:
self.vimeoClient = [[AFOAuth1Client alloc] initWithBaseURL:[NSURL URLWithString:vimeoBaseUrl]
key:@"ClientIDHere"
secret:@"SecretHere"];
[self.vimeoClient postPath:@"/oauth/access_token"
parameters:[NSDictionary dictionaryWithObjectsAndKeys:@"client_auth",@"x_auth_mode",@"myEmail",@"x_auth_username",@"myPwd",@"x_auth_password",@"write",@"x_auth_permission", nil]
success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"...");
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@":%@", error.description);
}];我知道这个错误:
VimeoTest49559:c07 :Error Domain=AFNetworkingErrorDomain Code=-1011“预期状态码(200-299),得到401”UserInfo=0x75622d0 {NSLocalizedRecoverySuggestion=401未经授权-无效签名- oauth_signature传递无效。
将AFXAuthClient与以下代码一起使用:
//update begin
AFXAuthToken *token = [[AFXAuthToken alloc] initWithKey:@"Access token from vimeo" secret:@"Access token secret"];
[self.vimeoXClient setToken:token];
//update end
self.vimeoXClient = [[AFXAuthClient alloc] initWithBaseURL:[NSURL URLWithString:vimeoBaseUrl]
key:@"ClientIDHere"
secret:@"SecretHere"];
[self.vimeoXClient authorizeUsingXAuthWithAccessTokenPath:@"/oauth/access_token"
accessMethod:@"POST"
username: @"myEmail"
password: @"myPwd"
success:^(AFXAuthToken *accessToken) {
NSLog(@"...");
}
failure:^(NSError *error) {
NSLog(@"error: %@", error.description);
}];我知道这个错误:
2013-07-16 20:18:27.819 VimeoTest49680:c07错误:错误Domain=AFNetworkingErrorDomain代码=-1011“预期状态代码在(200-299)中,得到400”UserInfo=0x7223e80 {NSLocalizedRecoverySuggestion=400坏请求-缺少所需参数-一个必需的参数丢失: oauth_token.,NSLocalizedRecoverySuggestion=400 NSErrorFailingURLKey=token,NSLocalizedDescription=Expected状态代码在(200-299)中,got 400,AFNetworkingOperationFailingURLResponseErrorKey=}
更新代码后出错(设置令牌):
2013-07-16 21:20:14.060 VimeoTest52437:c07错误:错误Domain=AFNetworkingErrorDomain代码=-1011“预期状态代码在(200-299),得到401”UserInfo=0x8b245a0 {NSLocalizedRecoverySuggestion=401未经授权-拒绝- oauth_token传递不是无效就是过期。
有人知道我做错了什么吗?
-更新
使用运行范围,我发送以下参数
Accept: */*
Accept-Encoding: gzip, deflate, compress
Authorization: OAuth oauth_nonce="63129149524659229601374074093", oauth_timestamp="1374074093", oauth_version="1.0", oauth_signature_method="HMAC-SHA1", oauth_consumer_key="MYCONSUMERKEYHERE", oauth_token="MYAPPTOKENHERE", oauth_callback="None", oauth_verifier="None", oauth_signature="lW%2BQYzwCcaDzSgoZUtvpSgLRSF4%3D"
Connection: close
Content-Length: 0
Host: vimeo-com-bbmyq45awg44.runscope.net
User-Agent: runscope/0.1
X-Forwarded-For: 54.236.210.241
X-Forwarded-Protocol: https
X-Forwarded-Ssl: on
X-Real-Ip: 54.236.210.241
X_auth_mode: client_auth
X_auth_password: MYPWDHERE
X_auth_permission: write
X_auth_username: MYUSERNAMEHERE我还是得到了同样的回应
HEADERS
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: GET, PUT, POST, PATCH, DELETE, OPTIONS, HEAD
Access-Control-Allow-Origin: *
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection: close
Content-Length: 104
Content-Type: text/plain;charset=UTF-8
Date: Wed, 17 Jul 2013 15:14:53 GMT
Expires: Wed, 17 Jul 2013 03:14:53 GMT
Runscope-Message-Id: 7bd9d07d-d043-4486-9a19-c3572997d3e4
Server: Apache
Vary: Accept-Encoding
X-Dns-Prefetch-Control: on
X-Powered-By: PHP/5.4.14
BODY view raw
401 Unauthorized - Permission Denied - The oauth_token passed was either not valid or has expired.我真的不确定我是不是错过了一些对词。需要oauth_verifier还是oauth_callback?在我的vimeo应用程序安装程序中,我得到了以下内容:
您的回调URL (编辑)vimeoTest://成功
发布于 2013-09-22 19:18:16
我也遇到了类似的问题,我不得不手动将oauth_callback参数添加到请求中。如果您有一个桌面应用程序,但不会使用它,设置为oob。
https://stackoverflow.com/questions/17684280
复制相似问题