2013-08-23 1 views
0

호주에있는 가정용 컴퓨터에 매일 밤 자정에 YouTube에 영화를 업로드하는 웹 서버가 있습니다. 그것은 문제없이 잘 작동합니다.다른 위치에서 YouTube API 클라이언트 로그인

나는 LA에서 호스팅 sshVM 서버로 내 웹 서버를 이동하고 있는데이 위치에서 같은 스크립트를 실행하고 다음과 같은 오류 준 :

인증 클라이언트 ... PHP 치명적인 오류 : catch되지 않은 예외를 'Zend_Gdata_App_AuthException'메시지와 함께 'Google 인증 실패.

0은/var/www /에서 로컬 호스트/htdocs에/스크립트 : /usr/lib/php/include/ZendGdata-1.12.3/library/Zend/Gdata/ClientLogin.php:175 스택 추적에 BadAuthentication ': 이유 /youtube-upload2.php(34) : Zend_Gdata_ClientLogin :: getHttpClient ('이메일 주소', 'my.password', 'youtube', NULL, 'MySource', NULL, NULL, 'https://www.goo ...')

나는 유튜브 화면에 메시지가 있었다

라인 (175)에 /usr/lib/php/include/ZendGdata-1.12.3/library/Zend/Gdata/ClientLogin.php에 던져

{주} (1) 그 말은 로그인이 차단되었습니다.

다른 위치에서 로그인을 허용 할 수 있음을 시스템에 어떻게 알릴 수 있습니까 ??

건배

답변

0

내가이 당신에게

유튜브 API 인증 제도-위해 AuthSub, OAuth를 1과 2의 숫자를 지원

http://apiblog.youtube.com/2011/03/clientlogin-fail.html

ClientLogin에 #FAIL 도움이 될 수 있습니다 생각 및 ClientLogin -하지만 마지막 방법 인 ClientLogin은 여러 가지면에서 가장 문제가됩니다. 이 블로그 게시물은 ClientLogin 시도가 실패 할 수있는 몇 가지 방법을 다루며 가능한 경우 이러한 실패를 해결할 수있는 방법을 제공합니다.

ClientLogin을 사용할 때 상황이 잘못 될 수 있다는 점을 감안할 때, YouTube API가 지원하는 대체 인증 방법 중 하나를 사용해보십시오. AuthSub 및 특히 OAuth 2는 구현하기가 쉽고 ClientLogin에서 다루는 문제에 취약하지 않습니다. 개인용 작은 스크립트를 작성하는 경우에도 오래 사용할 수있는 AuthSub 또는 OAuth 2 토큰을 얻고이를 인증 용으로 다시 사용하는 것이 ClientLogin의 로그인 이름과 암호를 하드 코딩하는 것보다 낫습니다. 코드가 웹 브라우저에 액세스 할 수 없다고해서 ClientLogin이 유일한 옵션이라는 것을 의미하지는 않습니다.이 가이드에서는 이러한 시나리오에서 OAuth 2를 사용하는 기술에 대해 설명합니다.

그걸로, 몇 가지 실패를 조사하자!

시나리오 1 : 연결되지 않은 YouTube 계정을 가진 사용자는 ClientLogin을 시도합니다. 이 시나리오는 실제로 현재 실패로 이어지지는 않지만 가까운 미래에 발생할 것입니다. 최근 메인 YouTube 블로그에서 발표 된 바와 같이 모든 YouTube 계정이 Google 계정에 연결되어 있어야합니다. 그렇지 않으면 로그인이 실패합니다. 현재 연결 해제 된 계정에 대한 로그인을 4 월 말에 사용 중지하는 것이 계획입니다. 유일한 해결책은 사용자가 자신의 YouTube 계정을 Google 계정에 연결하도록하는 것입니다. 웹 브라우저에서 로그인하는 경우 www.youtube를 방문하십시오.co.kr 또는 AuthSub/OAuth를 사용하면 계정을 연결하는 단계를 거치게됩니다. 연결된 계정이 필요하지만 Google은 ClientLogin 요청의 Email 매개 변수로 YouTube 사용자 이름 또는 Google 계정 이메일 주소를 계속 허용한다는 점에 유의해야합니다.

시나리오 2 : OpenID 페더레이션 로그인을 사용하도록 설정 한 사용자는 ClientLogin을 시도합니다. OpenID를 사용한 페더레이션 된 로그인은 특정 이메일 제공 업체 (현재 Yahoo! 및 AOL)의 이메일 주소에 해당하는 Google 계정을 인증하는 새로운 방법입니다. 현재 옵트 인 방식으로 제공되고 있으므로 잠시 다른 사람의 Google 계정이 @ yahoo.com 또는 @ aol.com 주소와 연결되어 있다고해서 그들이 페더레이션 된 로그인을 사용하는 것은 아닙니다. 옵트 인 사용자의 경우 ClientLogin이 더 이상 작동하지 않습니다. 통합 로그인을 사용하면 모든 로그인 요청을 ID 제공 업체에서 처리해야하며 Google의 ClientLogin 서버는 사용자를 대신하여 제 3 자 서버에 자격 증명을 전달할 수 없습니다. AuthSub와 두 버전의 OAuth는 웹 기반이므로 사용자는 아이디 공급자의 사이트에 직접 로그인하여 Google의 서버로 리다이렉트하여 적절한 AuthSub 또는 OAuth 토큰을 발행 할 수 있습니다. OpenID 계정으로 작동하는 인증을 제공하는 유일한 방법은 ClientLogin을 AuthSub 또는 OAuth로 마이그레이션하는 것입니다.

Scernario 3 : 2 단계 인증을 사용하도록 설정 한 사용자는 ClientLogin을 시도합니다. 이 시나리오와 실패의 원인에 대한 설명은 이전 블로그 게시물에서 자세히 다룹니다. 중요한 단계는 2 단계 인증을 사용하는 사용자가 ClientLogin이 필요한 각 애플리케이션에 대해 애플리케이션 별 비밀번호를 생성하고 일반 Google 계정 비밀번호 대신 해당 비밀번호를 제공해야한다는 것입니다. 또는 AuthSub 또는 OAuth를 사용하면 사용자가 두 가지 요소 자격 증명을 사용하여 직접 로그인 할 수 있으므로 사용자 경험이 향상됩니다.

시나리오 4 : ClientLogin을 시도 할 때 사용자가 보안 문자를 발견했습니다. 이것은 새로운 실패 시나리오는 아니지만 올바르게 처리하지 못한 개발자가 간과하는 경우가 많습니다. ClientLogin 문서에는 응용 프로그램이 ClientLogin 시도에서 CAPTCHA 응답을 처리하는 방법에 대한 권장 사항이 포함되어 있습니다. AuthSub 또는 OAuth를 사용하는 경우 응용 프로그램은 CAPTCHA를 처리하는 논리에 대해 신경 쓸 필요가 없습니다. 표준 AuthSub 및 OAuth 로그인 프로세스를 통해 처리됩니다.

이것은 실패 시나리오의 철저한 목록처럼 보일지 모르지만 YouTube 및 Google 계정의 로그인 환경을 계속 반복하면서 앞으로 더 많은 문제가 발생할 가능성이 있습니다. 개발자 커뮤니티에 정보를 제공하기 위해 최선을 다하겠습니다.하지만 응용 프로그램을 미래 보장 할 수있는 가장 좋은 방법은 ClientLogin 사용을 중지하는 것입니다.

관련 문제