現在作成中のアプリでは、goo.gl の URL Shorter API を使用して URL を短縮しています。私はそれをほぼ機能させています。longUrl を送信して NSString の短いものを取得できますが、次の形式になっています。
{
"kind": "urlshortener#url",
"id": "http://goo.gl/something",
"longUrl": "http://somethinglonggggg/"
}
そこからID(短いURL)を取得する方法があるかどうか疑問に思いました。
これが私がこれまでに持っているものです:
NSString *longURL = urlText.text;
NSData *reqData = [[NSString stringWithFormat:@"{\"longUrl\":\"%@\"}", longURL] dataUsingEncoding:NSUTF8StringEncoding];
NSMutableURLRequest *request = [NSMutableURLRequest
requestWithURL:[NSURL URLWithString:@"https://www.googleapis.com/urlshortener/v1/url"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:20];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:reqData];
NSError *err = [[NSError alloc] init];
NSData *retData = [NSURLConnection sendSynchronousRequest:request
returningResponse:nil
error:&err];
if([err domain]) return;
NSString *retString = [[NSString alloc] initWithData:retData encoding:NSUTF8StringEncoding];
if([retString rangeOfString:@"\"error\""].length) return;
NSLog(@" longUrl equals %@ ", longURL);
NSLog(@" retString equals %@ ", retString);
urlText.text = retString;