-5

** アップデート **

Google は、ビデオをアップロードするためにユーザーの操作を絶対に要求することで、地球上のすべての人を台無しにしてしまったようです。もちろん、私は知っています、彼らは無料です。何年も前にクライアントに警告したとおりなので、思い出す必要はありません。ありがとうございました。

だから私はこれを別の方向に向けて、Google が開発者と彼らが何をしなければならないかについてのサポートやケアをまったく欠いているにもかかわらず、私たちがやっていることをやり続けるための抜け穴と回避策を見つけたいと思います。対処する。

実際に電話番号に電話して、YouTube パートナーへのアクセスについて人間と話すことができれば別ですが、イルミナティへのアクセスをより迅速に取得できます。

OAuth 2.0 は現在、サポートされている唯一の認証方法です。ユーザーの操作が必要です。

しかし、そのトークンはどうですか?トークンの有効期間を知っている人はいますか?

ユーザー インタラクションを使用して 1 回だけトークンを取得し、それをデータベースに配置できれば、その後、おそらく数百または数千のインタラクションを自動化できます。

つまり、ユーザー インタラクションをコンクリートの壁ではなくスピード バンプに変えようとしているのです。

そのトークンを取得してキャッシュし、後で使用する例があれば、それは今の私にとって天の恵みです。

コメントとヘルプをありがとう。YouTube デベロッパー フォーラムが閉鎖され、代わりにここに来るように言われたことには驚きません :)


Google は既存のダッシュボードのプラグを完全に抜いたようです。

https://code.google.com/apis/youtube/dashboard/gwt/index.html

そのリンクは現在 404 です。異なるシステム上のいくつかの異なるブラウザーから試しました。

新しい Google API コンソールに登録済みですが、それでも問題が発生します。

// Set the authentication URL for this connection object
$authenticationURL= 'https://www.google.com/youtube/accounts/ClientLogin';

// Try to connect to YouTube with the channel credentials passed
try { 
  $httpClient = 
      Zend_Gdata_ClientLogin::getHttpClient(
      $username = $channelfields['EMAIL_ADDRESS'],
      $password = $channelfields['PASSCODE'],
      $service = 'youtube',
      $client = null,
      $source = 'Redacted Data',
      $loginToken = $channelfields['CACHED_TOKEN'],
      $loginCaptcha = '',
      $authenticationURL);  
} catch (Zend_Gdata_App_HttpException $httpException) {
    $update_error['response_body'] = $httpException->getRawResponseBody();
    $update_error['error'] = 1;
} catch (Zend_Gdata_App_Exception $e) {
    $update_error['message'] = $e->getMessage();
    $update_error['error'] = 1;
} 

このコードは以前は問題なく機能していましたが、古い API キーや Google API コンソール内で生成された新しい API キーでは機能しません。

私は単純なアップロードを試みていますが、これは私にとって大きな懸念事項です:

「サービス アカウント フローは、ユーザー情報にアクセスしないサーバー間のやり取りをサポートしています。ただし、YouTube Data API はこのフローをサポートしていません。サービス アカウントを YouTube アカウントにリンクする方法がないため、リクエストを承認しようとします。このフローでは NoLinkedYouTubeAccount エラーが発生します。」

すべてのレポートから、Google は、生成されたコンテンツを自動的にアップロードするプラットフォームがまったく機能しない可能性をすべて排除して、すべての場合に YouTube のアップロードをインタラクティブにするよう強制しているようです。

プロセスへのヘルプや洞察をいただければ幸いです。

PS - ああ、私がそのシステムを見て、Google が YouTube 開発者フォーラムを閉鎖し、「あなた」がサポートの責任を負っていると言ってからしばらく経ちました :)

4

5 に答える 5

3

OAuth2 は、オフライン アクセス タイプ パラメータ (つまり、access_type=offline の使用) を介してユーザーの操作を回避する機能をサポートしています。詳細については、 Google のドキュメントをご覧ください。

于 2013-09-20T16:26:38.547 に答える
1

解決策は実にシンプルです。オフライン アクセスをリクエストするには、アプリで oauth を使用する必要があります。データベースに保存するものである更新トークンに変換するアクセス権が与えられます。これは有効期限がありません。実際にはそうなる場合もありますが、それはまた別の話です。API にアクセスする必要があるときはいつでも、保存されている更新トークンを使用して、各 API 呼び出しに含めるアクセス トークンを要求します。

詳細については、 https://developers.google.com/accounts/docs/OAuth2WebServerを参照してください。

于 2013-09-20T01:37:14.400 に答える
0

ここで対応すべきいくつかの問題があると思います。

1) 古い API コンソールは削除されていませんが、Google が新しい「クラウド コンソール」を展開している間、古い API コンソールと新しい API コンソールが断続的に停止していることに気付きました。

2) ClientLogin は、48 時間前ではなく、2012 年 4 月に正式に廃止されました。Jeff Posnick は、彼のブログ (apiblog.youtube.com) で、数か月にわたるすべての変更 (および AuthSub、Youtube Direct などの関連する変更) について詳しく説明しています。

3) 確かに、API の v3 では、oAuth2 フローはユーザーの操作を必要とするため、全面的に自動アップロードを行うことはできません。ただし、ユースケースの説明が限られていることを考えると、おそらく更新トークンを使用するのが最善の策です。コンテンツがユーザーによって生成されたものである場合、ユーザーはどこかでアプリにログインしているはずですよね? (アップロードを行うために利用する資格情報をアプリが認識できるようにするため)。ユーザーがアプリにログインし、oAuth2 フローを開始する時点で、最初の oAuth エンドポイントにアクセスしてパラメーターを渡すだけです。access_type=offline(他のパラメータとともに)。これにより、最初のアクセス許可が付与されたときに、アクセス トークンではなく更新トークンが返されます。その更新トークンを使用すると、必要に応じて複数のアクセス トークンと交換できます (アクセス トークンの有効期間は約 1 時間です。更新トークンの有効期限はわかりませんが、自分のログイン Cookie より前に有効期限が切れたことはありません)。ユーザーがアプリに再ログインすると、新しいものを取得します)。

リフレッシュ トークンの使用方法に関する詳細情報は次のとおりです。また、さまざまな google api クライアント ライブラリにより、非常にスムーズになることにも注意してください。

https://developers.google.com/accounts/docs/OAuth2WebServer#refresh

また、数か月前の Google Developers Live ブロードキャストからのこのビデオ チュートリアルは、要点を説明するのに役立つかもしれません: http://www.youtube.com/watch?v=hfWe1gPCnzc -- クライアント ライブラリではなく oAuth プレイグラウンドを使用しています。しかし、コンセプトは同じです。

于 2013-09-19T22:39:34.647 に答える
0

答えは、google-api-php-client を使用し、インタラクティブな認証ページを作成し、新しい API コンソールで YouTube API v3 を正しくセットアップすることです。

提供されたチャネルを認証し、正しいトークンをデータベースに保存する非常に単純なページを作成できます。すでに作業を行っており、1 つのチャンネルに何百もの動画をアップロードしています。新しい API コンソールで自分自身を完全にアクティブ化し、必要なサービスを追加することを忘れないでください。必要なサービスの認証と追加を続けるだけです。その後、通常の v3 アップロード プロセスは正常に機能します。失敗した場合、グループに電子メールを送信すると、10 秒で新しいトークンを取得できます。

最も洗練されたソリューションではありませんが、Google のドキュメントは決して洗練されたものではなく、スタック オーバーフローが最前線のサポートになっています。

じっと待っていれば、必ず解決策が見つかります。あきらめてはいけない!

私も自分でここにたどり着きませんでした。このページの他の回答は、この時点までたどり着くのに役立ちました。みんなありがとう。

PS - スコープを忘れないでください

$client->setScopes(" https://www.googleapis.com/auth/youtube https://www.googleapis.com/auth/youtube.upload ");

于 2013-09-22T03:04:04.183 に答える
0

あなたが何をしたかはわかりませんが、https://code.google.com/apis/youtube/dashboard/gwt/index.htmlは私にとっては問題なく動作します。一時的な問題だったのかもしれません。ユーザーとのやり取りが必要ない場合は、YouTube API v2 を使用するか、認証を必要としないメソッドで v3 を使用するか、推奨されておらず、おそらく状況に適していない独自の YouTube アカウント資格情報を提供する必要があります。

于 2013-09-19T21:05:50.470 に答える