2012-06-09 2 views
0

나는 3 일 동안이 문제로 수수께끼를 던지고 있지만 어떤 해결책도 찾아 내지 못합니다. 그런 질문을 할 곳이 없다면 실례합니다. 그러나 나는 다른 대안이 없다고 생각한다.Youtube api (C#) 이상한 오류

사용자가 비디오를 업로드 한 다음 youtube api를 통해 특정 YouTube 채널로 업로드 할 수있는 응용 프로그램이 있습니다. 이 응용 프로그램은 아마존 호스트에서 호스팅됩니다. 이제까지는 중대한!

ssl 이유로 인해이 응용 프로그램을 다른 호스트에 배포해야합니다. 그래서 나는 나의 호스트의 정확한 인스턴스를 만든다. 하지만 문제는 내가 youtube API를 통해 업로드하려고 할 때이 오류가 발생합니다.

원격 서버에서 오류를 반환했습니다. (403) 금지되었습니다.

모든 배포 파일은 한 호스트에서 다른 호스트로 복사하여 붙여 넣습니다. 호스트의 구조와 구성은 정확히 동일합니다 (정확한 인스턴스가되기 전에 언급 한 바와 같습니다).

당신 중 일부 아이디어가 있다면 감사하게 생각합니다. 이것이이 질문을 게시하는 데 잘못된 장소 인 경우 다시 죄송합니다.

감사

UPDATE가

내가 현재 버전의 유튜브가 dll을의 업데이트와 나는이 메시지가 :

잘못된 자격 증명을

이상한 것은 내가 얻을 수 있다는 것입니다 이 메시지는 특정 YouTube/Google 계정에서만 표시됩니다. 다른 모든 계정에서 나는 비디오가 올바르게 업로드되도록 노력합니다.

어쩌면 계정에 문제가 있습니까?

답변

0

"403 Forbidden 응답의 HTTP 본문에는 XML 의 설명과 함께 오류의 설명이 포함되어야합니다."

HttpWebRequest를 사용한다고 가정합니다. 몸을 가져 와서 xml 응답을 기록하려면 WebException.Response을 사용하십시오.

try 
{ 
    var http = (HttpWebRequest)WebRequest.Create("youtube api"); 
    using (var resp = http.GetResponse()) 
    { 
     //Handle api response 
    } 
} 
catch (WebException we) 
{ 
    if (we.Response == null) 
     throw; //Rethrow because it doesn't have a body. 

    var resp = (HttpWebResponse)we.Response; 
    if (resp.StatusCode != HttpStatusCode.Forbidden) 
     throw; //We are only handling forbidden, rethrow other statuses. 

    using (var sr = new StreamReader(resp.GetResponseStream())) 
    { 
     var xml = sr.ReadToEnd(); 
     //Log xml here 
    } 
} 
0

나는 문제가 무엇인지에 대해 알았습니다.

나는 아마존 서버에서 유튜브에 수동으로 로그인하려고 시도했다. 나의 놀라운 일로 그것은 captcha 입력을 요구했다.

captcha에 들어가면 모든 것이 잘되었습니다!