使用ASIHTTPRequest进行身份验证时出错

时间:2012-12-27 03:53:41

标签: objective-c ios youtube-api asihttprequest gdata-api

我做了很多谷歌搜索,但我找不到任何可理解的ASIHttpRequest和Youtube API教程。我还在Stackoverflow和其他论坛上提出了很多问题,但没有人可以提供帮助。 我尝试从youtube获取最喜欢的视频列表。我已经成功登录并获得了访问权限。我将其设置为具有密钥授权的请求标头,但Youtube始终返回错误:

  

响应失败并显示消息:错误域= ASIHTTPRequestErrorDomain   Code = 3“需要验证”UserInfo = 0x933b980   {NSLocalizedDescription =需要身份验证}

这是我的代码:

#define CONNECTION_GET_FAVORITE_LIST @"https://gdata.youtube.com/feeds/api/users/default/favorites"

- (void) getFavoriteList{


  NSURL *url = [NSURL URLWithString:CONNECTION_GET_FAVORITE_LIST];
    ASIHTTPRequest *request = [[ASIHTTPRequest alloc] initWithURL:url];
    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
    [request addRequestHeader:@"Authorization" value:[@" Bearer "  stringByAppendingString:<accesstoken goes here>];
    request 
    [request startAsynchronous];
    [request setCompletionBlock:^{
        NSString* respondMessage = [request responseString];
        NSLog(@"Respond complete with message: %@",respondMessage);
    }];
    [request setFailedBlock:^{
        NSString* respondMessage = [request error];
        NSLog(@"Respond failed with message: %@",respondMessage);
    }];
    [request release];
}

更新:当我尝试使用方法GET并将链接上的accesstoken设置为:https://gdata.youtube.com/feeds/api/users/default/favorites?v=2&access_token=<accesstoken>时,youtube会抛出错误:

  

令牌无效 - AuthSub令牌的范围错误

     

错误401

请帮我解决这个问题。 非常感谢

1 个答案:

答案 0 :(得分:1)

坚决不要使用ASIHTTPRequest使用AFNetworking。但在这里你不需要任何人。

现在,您的请求需要authentication and authorizationgdata才能请求feed youtube

编辑:请参阅gtm-oauth2链接。

参考GData Youtube API Documenttaion链接。