0

YouTubeAPIを介してYouTube動画にコメントしようとしています。XMLをサーバーに送信する必要がありますが、送信しても何も返されません。また、ビデオにコメントすることもありません。

ここにAPIドキュメントへのリンクがあります

POST /feeds/api/videos/VIDEO_ID/comments HTTP / 1.1

ホスト:gdata.youtube.com

コンテンツタイプ:application / atom + xml

コンテンツの長さ:CONTENT_LENGTH

承認:ベアラーACCESS_TOKEN

GData-バージョン:2

X-GData-Key:key = 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 * defaults = [NSUserDefaults standardUserDefaults];

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];
4

1 に答える 1

0

YouTube APIは、HTTPリクエストを行うたびに常にHTTPレスポンスを送信します完全に無効なHTTPリクエストを行った場合でも、HTTPエラー応答が返されます。応答が返ってくるかどうかを再確認してください。本当にそうでない場合は、HTTPリクエストを実際に完了していないと思います。おそらく、ネットワークの問題が原因でAPIサーバーに到達しないか、CONTENT_LENGTH正しく計算されていない可能性があります(手作業で計算しようとしています)。

また、まだ使用していない場合は、 GDataObjective-Cクライアントライブラリを使用することをお勧めします。

于 2012-11-19T21:03:10.553 に答える