Ik probeer een web based uploader te maken voor youtube, ik maak gebruik van de yt API's. En moet dus toegang toestaan met OAuth 2.0
https://developers.google.com/youtube/2.0/developers_guide_protocol_browser_based_uploading#Browser_based_uploading

Maar ik moet dus een acces token verkrijgen wat ik al heb. Maar het probleem zit hem dat ik een post request moet doen en dit lukt niet.

Mijn code:

=> redir.php

<?php
$Access_token = 'https://accounts.google.com/o/oauth2/auth?
client_id=xxxxxxxxxxxx.apps.googleusercontent.com&
redirect_uri=http://sdesigns.be/UNSharp/obtain_token.php&
scope=https://gdata.youtube.com&
response_type=code&
access_type=offline';

echo '<a href="' . $Access_token . '">Click here to obtain a token2</a>';
?>

=> obtain_token.php
<?php
//this file is
$client_id = 'xxxxxxxxxxxx.apps.googleusercontent.com';
$client_secret = 'xxxxxxxxxxxxxxxxxxxxxxxxx';
$redirect_uri = 'http://sdesigns.be/UNSharp/obtain_token.php';

$author_code = $_GET["code"];

echo 'Author code: <br>' .$author_code . '<br>';



$oauth2token_url = "https://accounts.google.com/o/oauth2/token";
$clienttoken_post = array(
"code" => $code,
"client_id" => $client_id,
"client_secret" => $client_secret,
"redirect_uri" => $redirect_uri,
"grant_type" => "authorization_code"
);

$curl = curl_init($oauth2token_url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $clienttoken_post);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

$json_response = curl_exec($curl);

echo 'RESULT code: <br>' ;
var_dump($json_response);
echo '<br>';

curl_close($curl);
?>
Beste Sander,

Ik raad je NetBeans IDE aan, dan zie je gelijk je fout. Je wilt $author_code wellicht meegeven met een post request. Alleen, je geeft $code door, en geeft dit nergens waarde. Maak van $code eens $author_code, problem solved waarschijnlijk :-)

Reageren