1

Youtube API を使用して、ユーザーがブラウザーベースの Youtube へのアップロードを介してビデオをアップロードできるように自動的に許可しようとしています。現在、私はPHPを介してPOSTリクエストを行うことに取り組んでいますが、curl. curl使用している Web サーバーにアクセスできません。私がこれまでに持っているコードは次のとおりです。

<?php

$theCode = $_GET['code'];

$urltopost = "https://accounts.google.com/o/oauth2/token";
$datatopost = http_build_query( array(
"code" => $theCode,
"client_id" => "312231647220287.apps.googleusercontent.com",
"client_secret" => "ULGrcIJOBfjka;dsfasdfyCd7Z5M",
"redirect_uri" => ".../youtubeTestCode/hello.php",
"grant_type" => "authorization_code"
));
$opts = array('http' =>
      array(
    'method => 'POST',
    'header' => 'Content-type: application/x-www-form-urlencoded',
    'header' => 'Host: accounts.google.com',
    'content' => $datatopost
    )
);

$context = stream_context_create($opts);
$result = file_get_contents($urltopost, false, $context);

?>

試してみると、サーバーエラーが発生し続けます。

4

1 に答える 1

0

追加する場合:

var_dump($http_response_header);

の直後にget_file_content、次のように表示されます。

array(10) {
  [0]=>
  string(24) "HTTP/1.0 400 Bad Request"
  [1]=>
  string(61) "Cache-Control: no-cache, no-store, max-age=0, must-revalidate"
  [2]=>
  string(16) "Pragma: no-cache"
  [3]=>
  string(38) "Expires: Fri, 01 Jan 1990 00:00:00 GMT"
  [4]=>
  string(35) "Date: Fri, 31 Aug 2012 04:12:12 GMT"
  [5]=>
  string(30) "Content-Type: application/json"
  [6]=>
  string(31) "X-Content-Type-Options: nosniff"
  [7]=>
  string(27) "X-Frame-Options: SAMEORIGIN"
  [8]=>
  string(31) "X-XSS-Protection: 1; mode=block"
  [9]=>
  string(11) "Server: GSE"
}

これは、リクエストが適切に構成されていないことを意味します: 400 - 不正なリクエストは認証の失敗を意味します!

于 2012-08-31T04:14:56.797 に答える