代码之家  ›  专栏  ›  技术社区  ›  Daddy

google reader api with objective-c-获取令牌时出现问题

  •  3
  • Daddy  · 技术社区  · 16 年前

    我可以成功地获得我的谷歌阅读器帐户的sid(sessionid)。为了获得feed并在Google阅读器内执行其他操作,您必须获得授权令牌。我做这个有困难。有人能发光吗?

    //Create a cookie to append to the GET request
    NSDictionary *cookieDictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"SID",@"NSHTTPCookieName",self.sessionID,@"NSHTTPCookieValue",@".google.com",@"NSHTTPCookieDomain",@"/",@"NSHTTPCookiePath",nil];
    NSHTTPCookie *authCookie = [NSHTTPCookie cookieWithProperties:cookieDictionary];
    
    //The URL to obtain the Token from
    NSURL *tokenURL = [NSURL URLWithString:@"http://www.google.com/reader/api/0/token"];
    NSMutableURLRequest *tokenRequest = [NSMutableURLRequest requestWithURL:tokenURL];
    
    //Not sure if this is right: add cookie to array, extract the headers from the cookie inside the array...?
    [tokenRequest setAllHTTPHeaderFields:[NSHTTPCookie requestHeaderFieldsWithCookies:[NSArray arrayWithObjects:authCookie,nil]]];
    
    //This gives me an Error 403 Forbidden in the didReceiveResponse of the delegate
    [NSURLConnection connectionWithRequest:tokenRequest delegate:self];
    

    我从谷歌那里得到了403个被禁止的错误。我可能做得不对。我根据nshtpcookie的文档设置字典值。

    1 回复  |  直到 16 年前
        1
  •  1
  •   outis    16 年前

    cookie属性的键应该是 NSHTTPCookie constants ,而不是您提供的文字字符串。

    NSDictionary *cookieDictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"SID",NSHTTPCookieName,
              self.sessionID,NSHTTPCookieValue,
              @".google.com",NSHTTPCookieDomain,
              @"/",NSHTTPCookiePath,
              nil];
    

    注意,值常量不等于它们的名称;一般来说,它们似乎是没有“nshtpcookie”的名称(例如。 NSHTTPCookieDomain == @"Domain" 但是你不应该依赖这个。重新阅读文档。