2013-02-18 159 views
1

我试图在objective-c中获取Facebook个人资料图片的URL。我正在做如下。用简单的NSMutableURLRequest获取facebook个人资料图片

-(NSString *)getProfileURL:(NSString *)userId{ 
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 
    request = [[NSMutableURLRequest alloc] init]; 

    NSString *requestURL = [NSString stringWithFormat:@"https://graph.facebook.com/%@/picture",userId]; 
    NSLog(@"request url is %@",requestURL); 
    [request setURL:[NSURL URLWithString:requestURL]]; 
    [request setHTTPMethod:@"GET"]; 
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
    [request setTimeoutInterval:60.0]; 

    NSError *error; 
    NSURLResponse *response; 
    NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 

    NSString *data=[[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding]; 
    NSLog(@"data received from url: %@", data); 

    return data; 
} 

当我在浏览器中从requestURL复制并越过日志时,我得到了正确的图像。但是当我看着日志"Data received from url: "。我总是得到(null)

任何帮助?

+0

你可以使用此URL来获取图片 http://graph.facebook.com/idUser/picture?type=normal ...你也可以做图api ..看看facebook docs https://developers.facebook .com/docs/getting-started/graphapi/ – 2013-02-18 13:31:41

+0

是的,但用我的网址我也得到了图片。但它不会将其存储在Data组件中。 – Steaphann 2013-02-18 13:33:33

+0

也许你的要求是返回null – 2013-02-18 13:35:07

回答

1

据此向Graph API documentation,您的图像直接调用返回的URL,这就是为什么你可以返回的值装入NSString,可以改为创建一个UIImage情况下,像这样:

NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
UIImage *image = [[UIImage alloc]initWithData:urlData]; 
相关问题