0

私はオーストラリアの自宅のコンピューターに Web サーバーを持っており、毎晩真夜中に youtube に映画をアップロードしています。正常に動作し、問題はありません。

LA でホストされている sshVM サーバーに Web サーバーを移動しており、この場所から同じスクリプトを実行すると、次のエラーが発生しました。

クライアントを認証しています... PHP 致命的なエラー: メッセージ「Google による認証に失敗しました。理由: /usr/lib/php/include/ZendGdata-1.12.3/library/Zend/Gdata/ClientLogin.php:175 の BadAuthentication スタック トレース:

0 /var/www/localhost/htdocs/scripts/youtube-upload2.php(34): Zend_Gdata_ClientLogin::getHttpClient('メールアドレス', 'my.password', 'youtube', NULL, 'MySource', NULL, NULL 、「https://www.goo ...」)

1 {メイン}

/usr/lib/php/include/ZendGdata-1.12.3/library/Zend/Gdata/ClientLogin.php の 175 行目にスローされます

YouTube 画面に、ログインがブロックされたというメッセージが表示されました。

他の場所からのログインを許可できることをシステムに伝えるにはどうすればよいですか??

乾杯

4

1 に答える 1

0

私はこれがあなたを助けるかもしれないと思う

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

クライアントログイン #FAIL

YouTube API は、AuthSub、OAuth 1 および 2、ClientLogin などの多くの認証スキームをサポートしていますが、多くの点で最も問題があるのは最後のメソッドである ClientLogin です。このブログ投稿では、ClientLogin の試行が失敗する可能性があるいくつかの方法について説明し、可能であれば、それらの失敗を回避する方法を提供します。

その前に、ちょっとした公共サービスの発表があります。ClientLogin を使用すると問題が発生する可能性があるため、YouTube API がサポートする代替認証方法の 1 つを使用することを検討してください。AuthSub と特に OAuth 2 は簡単に実装でき、ClientLogin で説明する問題の影響を受けません。個人用の小さなスクリプトを作成している場合でも、ClientLogin のログイン名とパスワードをハードコーディングするよりも、有効期間が長い AuthSub または OAuth 2 トークンを 1 つ取得し、それを認証に再利用することをお勧めします。また、コードが Web ブラウザーにアクセスできないからといって、ClientLogin が唯一の選択肢であるとは限りません。このガイドでは、そのようなシナリオで OAuth 2 を使用するためのテクニックについて説明します。

それでは、いくつかの失敗を調査しましょう。

シナリオ 1:リンクされていない YouTube アカウントを持つユーザーが ClientLogin を試みます。このシナリオは、現時点では実際に障害につながることはありませんが、近い将来には発生するでしょう。メインの YouTube ブログで最近発表されたように、すべての YouTube アカウントを Google アカウントにリンクする必要があります。そうしないと、ログインに失敗します。現在の計画では、リンクされていないアカウントのログインを 4 月末に無効にする予定です。唯一の回避策は、ユーザーに YouTube アカウントを Google アカウントにリンクさせることです。www.youtube.com または AuthSub/OAuth を使用して Web ブラウザからログインすると、アカウントをリンクする手順が表示されます。リンクされたアカウントが必要ですが、ClientLogin リクエストの Email パラメータとして、YouTube ユーザー名または Google アカウントのメール アドレスのいずれかを引き続き受け入れることに注意してください。

シナリオ 2:OpenID フェデレーション サインインを有効にしたユーザーは、ClientLogin を試みます。OpenID を使用した連携サインインは、特定のメール プロバイダ (現在は Yahoo! と AOL) のメール アドレスに対応する Google アカウントを認証する新しい方法です。現在、オプトイン ベースで提供されているため、現時点では、あるユーザーの Google アカウントが @yahoo.com または @aol.com アドレスに関連付けられているからといって、フェデレーション サインインを使用しているとは限りません。オプトインしたユーザーの場合、ClientLogin はまったく機能しなくなります。フェデレーション サインインでは、すべてのログイン リクエストは ID プロバイダーによって処理される必要があり、Google の ClientLogin サーバーは、ユーザーの代わりに資格情報をサードパーティ サーバーに中継することはできません。AuthSub と両方のバージョンの OAuth は Web ベースであるため、ユーザーは ID プロバイダーのサイトに直接ログインし、それを Google のサーバーにリダイレクトして、適切な AuthSub または OAuth トークンを発行できます。ClientLogin から AuthSub または OAuth に移行することが、OpenID アカウントで機能する認証を提供する唯一の方法です。

シナリオ 3: 2 段階認証を有効にしているユーザーが ClientLogin を試行します。このシナリオと、それが失敗する理由については、以前のブログ記事で詳しく説明しています。重要なポイントは、2 段階認証プロセスが有効になっているユーザーは、ClientLogin を必要とするアプリケーションごとにアプリケーション固有のパスワードを生成し、通常の Google アカウント パスワードの代わりにそのパスワードを提供する必要があるということです。または、AuthSub または OAuth を使用すると、ユーザーは 2 要素認証情報を使用して直接ログインできるため、ユーザー エクスペリエンスが向上します。

シナリオ 4:ユーザーが ClientLogin を試みるときに CAPTCHA に遭遇します。これは新しい障害シナリオではありませんが、開発者が適切に処理しないと見落とされることがよくあります。ClientLogin のドキュメントには、アプリケーションが ClientLogin 試行からの CAPTCHA 応答を処理する方法に関する推奨事項が含まれています。AuthSub または OAuth を使用している場合、アプリケーションで CAPTCHA を処理するためのロジックを気にする必要はありません。標準の AuthSub および OAuth ログイン プロセスによって処理されます。

これは失敗シナリオの完全なリストのように思えるかもしれませんが、YouTube と Google アカウントのログイン エクスペリエンスを反復し続けると、将来さらに多くの「落とし穴」が発生する可能性があります。私たちは開発者コミュニティに情報を提供するために最善を尽くしますが、アプリケーションを将来的に保証する最善の方法は、ClientLogin の使用を停止することです!

于 2013-10-11T08:40:55.807 に答える