我使用youtube API将视频从我的网站上传到我的YouTube帐户。 YouTube API每次都会要求访问我帐户的API。
有没有办法只询问一次,并保存帐户数据,不要再次要求下次上传,请帮帮我
这是我的代码:
$client = new \Google_Client();
$OAUTH2_CLIENT_ID = 'xxxxxxxxx';
$OAUTH2_CLIENT_SECRET = 'xxxxxxxx';
$client->setClientId($OAUTH2_CLIENT_ID);
$client->setClientSecret($OAUTH2_CLIENT_SECRET);
$client->setAuthConfig('xxxxxxxx/'.client_secrets.json');
$client->setScopes('https://www.googleapis.com/auth/youtube');
$client->setAccessType("offline");
$client->setIncludeGrantedScopes(true);
$client->setRedirectUri('http://myWebsiteUrl');
if (!isset($_GET['code'])) {
$auth_url = $client->createAuthUrl();
header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
exit;
} else{
$title = 'title';
$descriptions = 'description';
}
$client->authenticate($_GET['code']);
if (isset($_SESSION['access_token'])) {
$client->setAccessToken($_SESSION['access_token']);
} else {
$_SESSION['access_token'] = $client->getAccessToken();
}
try {
$youtube = new \Google_Service_YouTube($client);
$videoPath = 'video path';
$snippet = new \Google_Service_YouTube_VideoSnippet();
$snippet->setTitle($title);
$snippet->setDescription($descriptions);
$snippet->setCategoryId('22');
$status = new \Google_Service_YouTube_VideoStatus();
$status->privacyStatus = "public";
$video = new \Google_Service_YouTube_Video();
$video->setSnippet($snippet);
$video->setStatus($status);
$chunkSizeBytes = 1 * 1024 * 1024;
$client->setDefer(true);
$insertRequest = $youtube->videos->insert("status,snippet", $video);
$media = new \Google_Http_MediaFileUpload($client, $insertRequest, 'video/*', null, true, $chunkSizeBytes);
$media->setFileSize(filesize($videoPath));
$status = false;
$handle = fopen($videoPath, "rb");
while (!$status && !feof($handle)) {
$chunk = fread($handle, $chunkSizeBytes);
$status = $media->nextChunk($chunk);
}
fclose($handle);
$client->setDefer(false);
} catch (Google_Service_Exception $e) {
echo $e->getMessage();
} catch (Google_Exception $e) {
die('error');
}
答案 0 :(得分:1)
您可能需要设置OAuth 2.0 credentials。
从这里开始,您将可以Create your project and select API services。
- 打开Credentials page。
- 醇>
API支持API密钥和OAuth 2.0凭据。创建适合您项目的凭据:
OAuth 2.0:您的应用程序必须发送OAuth 2.0令牌以及访问私有用户数据的任何请求。您的应用程序发送 客户端ID,可能还有客户机密钥以获取令牌。您可以 为Web应用程序,服务帐户生成OAuth 2.0凭据, 或安装的应用程序。
有关详情,请参阅Creating OAuth 2.0 credentials部分 信息。
API密钥:不提供OAuth 2.0令牌的请求必须发送API密钥。密钥标识您的项目并提供API 访问,配额和报告。
有关创建的信息,请参阅Creating API Keys部分 API密钥。