YouTube へのブラウザ ベースのアップロードを実行しようとしています。PHP、Zend Framework 2、および ZF2 用の ZendGData クライアント ライブラリを使用しています。Google Developers ガイドに従ってセットアップし、無許可のリクエスト (動画の検索など) を正常に実行できました。また、承認済みのリクエストを行うこともできました。つまり、YouTube アカウントから自分の氏名を取得します。
アップロードしようとすると、アップロード トークンを取得すると、次のエラーが表示されます。
予想される応答コードは 200 で、取得したのは 403 です
この操作には開発者キーが必要です
エラー 403
私のアップローダーコントローラーを以下に示します。チュートリアルで説明されているように、 https://code.google.com/apis/youtube/dashboardを使用して開発者キーを設定し、コードに含めました。また、対応するユーザー/電子メールおよびパスワードも提供されます。Curl を使用して API に接続していますが、これは開発者ガイドには記載されていませんが、それが問題だとは思いません。
`
namespace Uploader\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use ZendGData\YouTube;
use ZendGData\ClientLogin;
use Zend\Http\Client\Adapter;
class UploaderController extends AbstractActionController
{
public function indexAction()
{
$adapter = new Adapter\Curl();
$curl = new \ZendGData\HttpClient();
$curl->setAdapter($adapter);
$adapter->setOptions(array(
'curloptions' => array(
CURLOPT_SSL_VERIFYPEER => FALSE,
CURLOPT_SSL_VERIFYHOST => FALSE,
)
));
$authenticationURL= 'https://www.google.com/accounts/ClientLogin';
$httpClient = ClientLogin::getHttpClient(
$username = '***********@gmail.com',
$password = '*********',
$service = 'youtube',
$client = $curl,
$source = 'Testing', // a short string identifying your application
$loginToken = null,
$loginCaptcha = null,
$authenticationURL
);
$developerKey = 'AI39si55e**********************************************************************nY9p5NJ8y-8PwS9d8Jw';
$applicationId = 'Testing';
$clientId = "Youtube Tester V1";
$yt = new YouTube($httpClient, $applicationId, $clientId, $developerKey);
$yt->setMajorProtocolVersion(2);
$myVideoEntry = new YouTube\VideoEntry;
$myVideoEntry->setVideoTitle('My Test Movie');
$myVideoEntry->setVideoDescription('My Test Movie');
// The category must be a valid YouTube category!
$myVideoEntry->setVideoCategory('Autos');
// Set keywords. Please note that this must be a comma-separated string
// and that individual keywords cannot contain whitespace
$myVideoEntry->SetVideoTags('cars, funny');
$tokenHandlerUrl = 'http://gdata.youtube.com/action/GetUploadToken';
$tokenArray = $yt->getFormUploadToken($myVideoEntry, $tokenHandlerUrl);
$data = array('tokenValue' => $tokenArray['token'], 'postUrl' => $tokenArray['url']);
return new ViewModel( $data );
}
}
`
したがって、私が知る限り、開発者ガイドにほぼ正確に従い、開発者キーを持っていますが、それでもエラーが発生します。問題の可能性はありますか?