2012-11-19 3 views
0

YouTube API를 통해 YouTube 동영상에 댓글을 달려고합니다. 나는 서버에 XML을 몇 개 보내야한다. 그러나 내가 할 때 나에게 아무것도 돌려 주거나, 비디오에 댓글을 달지 않는다.YouTube-Api 동영상에 대한 댓글

Heres the link to the api documentation!

POST/공급/API/비디오/VIDEO_ID/의견 HTTP/1.1

호스트 : gdata.youtube.com

콘텐츠 형식 : 응용 프로그램/원자 + XML

콘텐츠 - 길이 : CONTENT_LENGTH

인증 : 무기명 access_token은

의 GData-버전 : 2

X-의 GData - 키 : 키 = DEVELOPER_KEY

<?xml version="1.0" encoding="UTF-8"?> 
<entry xmlns="http://www.w3.org/2005/Atom" 
    xmlns:yt="http://gdata.youtube.com/schemas/2007"> 
<content>This is a crazy video.</content> 
</entry> 

나는 일이에 붙어 있기 때문에 정말 모든 도움을 주셔서 감사합니다. 감사합니다. 여기

내 코드 : NSUserDefaults * 기본값 = NSUserDefaults standardUserDefaults]; 당신이 HTTP 요청을 할 때마다

NSString *requestString = [NSString stringWithFormat:@"<?xml version=\"1.0\" encoding=\"UTF-8\"?><entry xmlns=\"http://www.w3.org/2005/Atom\"xmlns:yt=\"http://gdata.youtube.com/schemas/2007\"><content>%@</content></entry>", [textField text]]; 

NSData *postData = [requestString dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]]; 
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 

[request setURL:[NSURL URLWithString:@"https://gdata.youtube.com/feeds/api/videos/4NE7Nmmt0R4/comments"]]; 
[request setHTTPMethod:@"POST"]; 
[request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 
[request setValue:@"application/atom+xml" forHTTPHeaderField:@"Content-Type"]; 
[request setValue:[NSString stringWithFormat:@"key=%@", [defaults objectForKey:@"accessToken"]] forHTTPHeaderField:@"Authorization"]; 
[request setValue:@"key=AI39si4apF3QyQkXbH_C5IHIClkyP2mio2QJ3JBUUpvPbO2rhch7tpYjMavZgt5QzGaGrHBfom5mNpoUq_ZLRPPa35KO21O9Pw" forHTTPHeaderField:@"X-GData-Key"]; 
[request setValue:@"2" forHTTPHeaderField:@"GData-Version"]; 

[request setHTTPBody:postData]; 

NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES]; 

[conn start]; 

답변

0

유튜브 API는 항상 HTTP 응답을 보냅니다. 완전히 유효하지 않은 HTTP 요청을하더라도 HTTP 오류 응답이 반환됩니다. 다시 응답을 받고 있는지 다시 확인하십시오. 실제로 그렇지 않다면 내 생각에 HTTP 요청을 실제로 완료하지 않은 것 같습니다. 네트워크 문제로 API 서버를 만들지 않았거나 아마도 CONTENT_LENGTH을 제대로 계산하지 못했을 것입니다 (가정하면 ' 손으로 그것을 계산하려고 시도).

또한 아직없는 경우 GData Objective-C client library을 사용하는 것이 좋습니다.

+0

귀하의 조언에 감사드립니다. 객관적인 C에 익숙합니까? 그런 다음 상단에 내 코드를 표시 할 수 있습니다 (여기에 게시 할 수 없기 때문에). 그리고 어쩌면 잘못된 것을 볼 수 있습니다. 새로 고침 토큰에 대한 게시물 요청을 보내면 정상적으로 작동합니다. – user1734282

+0

Objective-C에 능숙하지는 않지만 내 응답에서 제공 한 정보는 계속 적용됩니다. 무슨 일이 일어나는지 파악할 수없는 경우 공식 클라이언트 라이브러리를 사용하는 것이 가장 좋습니다. –

+0

내 첫 번째 시도는 GData Objective-C 라이브러리를 사용했지만 더 이상 사용되지 않습니다. – user1734282

관련 문제