1

Objective-C で Facebook のプロフィール写真の URL を取得しようとしています。以下のようにしています。

-(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)います。

何か助けはありますか?

4

1 に答える 1

1

Graph APIのドキュメントによると、呼び出しているURLは画像を直接返します。そのため、戻り値をに読み込むことができます。代わりに、次のようなインスタンスNSStringを作成できます。UIImage

NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
UIImage *image = [[UIImage alloc]initWithData:urlData];
于 2013-02-18T15:20:45.797 に答える