Я следовал за документами и примерами кода из руководства по документации, то есть здесь: https://developers.google.com/youtube/v3/docs/commentThreads/insert Но когда я выполняю скрипт, он всегда возвращает ответ с кодом ошибки: 403 сообщение: «Insufficient Permission»
Вот полный объект ответа:
< «error»: < «errors»: [ < «domain»: «global», «reason»: «insufficientPermissions», «message»: «Insufficient Permission»>], «code»: 403, «message»: «Insufficient Permission»> >
Я потратил много времени на отладку и серфинг в Интернете, чтобы выяснить, как решить проблему, но не нашел никакого ресурса, где я мог бы найти решение этой проблемы. Я был бы очень благодарен, если бы кто-нибудь мог дать мне подсказку или решение по этому поводу или сказать мне, если я что-то упустил.
Постскриптум Я также использовал другие методы API в своем приложении, такие как лайк видео, подписка на канал, вход в систему с Google, и все это отлично сработало. не почему эта вставка комментария не работает.
YOUTUBE ERROR 403
Любая помощь будет оценена. Благодарю.
Вот мой скрипт API для вызова API.
client_id = $client_id; $this->client_secret = $client_secret; $this->redirect_uri = $redirect_uri; // create google client instance $this->client = $this->getClient(); if(!empty($token)) < // set / refresh access token $this->setRefreshAccessToken($token); // Define an object that will be used to make all API requests. $this->yt_service = new Google_Service_YouTube($this->client); > > // Get a google client instance // docs: https://developers.google.com/youtube/v3/guides/auth/server-side-web-apps private function getClient($redirect_uri = ») < if (!empty($redirect_uri)) < $this->redirect_uri = $redirect_uri; > $client = new Google_Client(); $client->setAuthConfig(‘client_secrets.json’); $client->setScopes([ «https://www.googleapis.com/auth/userinfo.email», «https://www.googleapis.com/auth/userinfo.profile», «https://www.googleapis.com/auth/plus.me», «https://www.googleapis.com/auth/plus.profiles.read», «https://www.googleapis.com/auth/youtube»]); // available scopes: https://developers.google.com/identity/protocols/googlescopes $client->setRedirectUri($this->redirect_uri); $client->setState(mt_rand()); $client->setAccessType(‘offline’); $client->setApprovalPrompt(‘force’); $client->setIncludeGrantedScopes(true); // incremental auth return $client; > public function setRefreshAccessToken($accessToken) < // Set the access token $this->client->setAccessToken($accessToken); // Refresh the token if it’s expired. if ($this->client->isAccessTokenExpired()) < // update access token $this->client->fetchAccessTokenWithRefreshToken($this->client->getRefreshToken()); > > // Insert a comment on video // docs: https://developers.google.com/youtube/v3/docs/commentThreads/insert public function commentVideo($videoId, $commentText) < $this->client->addScope(‘https://www.googleapis.com/auth/youtube’); $this->client->addScope(‘https://www.googleapis.com/auth/youtube.force-ssl’); # Create a comment snippet with text. $commentSnippet = new Google_Service_YouTube_CommentSnippet(); $commentSnippet->setTextOriginal($commentText); # Create a top-level comment with snippet. $topLevelComment = new Google_Service_YouTube_Comment(); $topLevelComment->setSnippet($commentSnippet); # Create a comment thread snippet with channelId and top-level comment. $commentThreadSnippet = new Google_Service_YouTube_CommentThreadSnippet(); // $commentThreadSnippet->setChannelId($CHANNEL_ID); $commentThreadSnippet->setVideoId($videoId); // Insert video comment $commentThreadSnippet->setTopLevelComment($topLevelComment); # Create a comment thread with snippet. $commentThread = new Google_Service_YouTube_CommentThread(); $commentThread->setSnippet($commentThreadSnippet); # Call the YouTube Data API’s commentThreads.insert method to create a comment. $response = $this->yt_service->commentThreads->insert(‘snippet’, $commentThread); // print_r($response); return $response; > > ?>
И вот сценарий для моей конечной точки (я выполняю ajax-вызов для этого сценария).
Ошибка 403 или Доступ запрещен
if(empty($_POST[‘videoId’])) < return die(‘parameter `videoId` is required.’); >if(empty($_POST[‘commentText’])) < return die(‘parameter `commentText` is required.’); >try < // GoogleApi class instance $api = new GoogleApi(CONSUMER_KEY, CONSUMER_SECRET, OAUTH_CALLBACK, $_POST[‘token’]); $data = $api->commentVideo($_POST[‘videoId’], $_POST[‘commentText’]); // send response. echo json_encode($result); > catch(Exception $err) < return die($err ->getMessage()); > ?>
Решение
если вы утешите документацию для CommentThreads: вставить
авторизация
Этот запрос требует авторизации по крайней мере с одной из следующих областей (подробнее об аутентификации и авторизации).Объем
https://www.googleapis.com/auth/youtube.force-ssl
Вы заметите, что для доступа к этому методу вам необходимо включить эту область.
Совет: документация по всем методам включает этот раздел авторизации, если вам требуется авторизация для доступа к рассматриваемому методу. Если вы всегда проверяете это, то у вас больше не будет этой проблемы.
Другие решения
Других решений пока нет …
Источник: web-answers.ru
Что значит ошибка 403
Ошибка 403 — одна из самых распространенных проблем, которая возникает у пользователей при работе в сети интернет. Сама по себе ошибка ничего серьезного в себе не несет, поэтому пугаться ее появления не стоит.
Статьи по теме:
- Что значит ошибка 403
- Как убрать ошибку сценария
- Ошибка сервисов Google Play: как исправить?
Что значит ошибка 403?
В большинстве своем, ошибка 403 возникает вследствие каких-то неполадок либо со стороны клиента, либо со стороны сервера, с которого пользователя пытается получить ответ. Для многих пользователей, возникновение ошибки 403 означает то, что у них нет прав на просмотр контента или на просмотр страницы.
Причины возникновения ошибки 403 и их устранение
Существует несколько причин появления подобной проблемы. Во-первых, нужно четко понимать, что ограничения устанавливаются непосредственно администратором сайта, а значит, причина может быть буквально в чем-угодно. Чаще всего причина заключается в: используемом программном обеспечении или получение пользователем бана на ресурсе. Стоит отметить, что в последнем случае существует два варианта развития событий: либо вас забанили на определенное количество времени, по прошествии которого вы снова сможете пользоваться возможностями сайта, либо вам ограничили доступ перманентно, то есть наказание будет действовать вплоть до тех пор, пока сам администратор не отменит его.
Если же вы уверены в том, что у вас никаких ограничений быть не может и при этом, вы не можете получить доступ к сайту, тогда нужно обратиться за помощью в техническую поддержку самого ресурса. Вероятнее всего, что в таком случае проблема заключается именно в неполадках самого сервера.
Если вы являетесь администратором какого-то ресурса и получили сообщение подобного рода, тогда вам требуется проверить доступ к просмотру файлов, хранящихся на сайте. Иногда проблема может заключаться в том, что при создании материала и его размещении, администратор по ошибке ограничивает права на просмотр. Кроме того, существует вероятность того, что названия папок могут иметь неверные названия. В данном случае требуется убедиться в их правильности и проверить месторасположение.
Довольно часто ошибку 403 можно встретить при работе с сервисами Google Play Market. Для того чтобы устранить насущную проблему потребуется убедиться в том, что SD карта установлена в устройство, после этого очистить кэш и данные Google Play, а также удалить свой аккаунт. После этого потребуется заново войти в Google Play и по запросу ввести данные своего нового аккаунта, после чего проблема будет решена.
В итоге получается, что ошибка 403 не является какой-то серьезной проблемой, а в случае ее возникновения ее легко и просто можно устранить.
Источник: www.kakprosto.ru
Что такое ошибка 403 Forbidden и как можно ее исправить
О шибка 403 Forbidden возникает, когда веб-сервер запрещает Вам получать доступ к странице, которую Вы пытаетесь открыть в своем браузере. В большинстве случаев Вы не можете ничего сделать. Но иногда проблема может быть на Вашей стороне. Вот некоторые вещи, которые Вы можете попробовать.
Что такое ошибка 403 Forbidden
Ошибка 403 Forbidden происходит, когда веб-страница (или другой ресурс), которую Вы пытаетесь открыть в своем веб-браузере, является ресурсом, доступ к которому Вам недоступен. Это называется ошибкой 403, потому что это код состояния HTTP, используемый веб-сервером для описания такой ошибки. Обычно Вы получаете эту ошибку по одной из двух причин. Во-первых, владельцы веб-сервера правильно настроили разрешения доступа и что Вам действительно не разрешен доступ к ресурсу. Вторая причина заключается в том, что владельцы веб-сервера неправильно настроили разрешения, и Вам становится отказано в доступе, когда этого не должно быть.
Как и при 404 и 502 ошибках, дизайнеры веб-сайтов могут настроить, как выглядит ошибка 403. Таким образом, Вы можете увидеть разные 403 страницы на разных сайтах. Веб-сайты также могут использовать несколько разных имен для этой ошибки. Например, Вы можете увидеть такие вещи, как:
- 403 Forbidden
- HTTP 403
- Forbidden
- Ошибка HTTP 403 — Forbidden
- Ошибка HTTP 403.14 — Forbidden
- Ошибка 403
- Forbidden: у Вас нет доступа к [каталогу] на этом сервере
- Ошибка 403 — Forbidden
Подавляющее большинство времени, Вы не можете ничего сделать, чтобы исправить ситуацию на Вашей стороне. Либо Вам не разрешено обращаться к ресурсу, либо на стороне сервера есть ошибка. Иногда это временная ошибка; иногда это не так. Тем не менее, есть некоторые вещи, которые Вы можете попробовать.
Обновите страницу
Обновление страницы всегда стоит того. Часто ошибка 403 является временной, и простое обновление может помочь. Большинство браузеров используют клавишу F5 для обновления, а также предоставляют кнопку «Обновить» где-то в адресной строке. Это исправляет проблему не очень часто, но для ее выполнения требуется всего одна секунда.
Дважды проверьте адрес
Наиболее распространенной причиной ошибки 403 является неправильный URL. Убедитесь, что адрес, к которому Вы пытаетесь получить доступ, относится к веб-странице или файлу, а не к каталогу. Обычный URL-адрес заканчивается на .com, .php, .org, .html или просто имеет расширение, в то время как URL-адрес каталога обычно заканчивается символом «/».
Большинство серверов настроены на запрет просмотра каталогов по соображениям безопасности. Когда они настроены правильно, Вы перенаправляетесь на другую страницу. Когда это не так, Вы можете увидеть ошибку 403.
Очистить файлы cookie и кеш браузера
Также возможно, что страница с ошибкой была кэширована в Вашем браузере, но фактическая ссылка была изменена на веб-сайте. Чтобы проверить эту возможность, Вам нужно очистить кеш браузера и файлы cookie. Очистка кеша не сильно повлияет на Ваш просмотр, но на некоторых веб-сайтах может потребоваться несколько дополнительных секунд для загрузки, поскольку они повторно загружают все ранее кэшированные данные. Очистка файлов cookie означает, что Вам придется снова войти в систему на большинстве веб-сайтов.
Проверьте, есть ли у Вас разрешение на доступ к URL-адресу
Если Вы пытаетесь получить доступ к веб-сайту, для которого требуется войти в систему, прежде чем Вы сможете увидеть содержимое, это может вызвать проблему. Как правило, серверы настроены так, чтобы показывать Вам сообщение об ошибке, позволяющее Вам знать, что Вы должны войти в систему, чтобы получить доступ к контенту.
Но некоторые неправильно сконфигурированные серверы могут вместо этого выполнить ошибку 403. Попробуйте войти на сайт (если это возможно) и посмотрите, не исчезла ли ошибка.
Попробуйте позже
Если ни одно из простых решений, о которых мы говорили, пока работает, Вы всегда можете подождать некоторое время и вернуться позже. Поскольку большую часть времени 403 ошибки вызваны проблемами с данным сайтом, вероятно, кто-то уже работает над проблемой.
Связаться с владельцем веб-сайта
Другой вариант — связаться с владельцем веб-сайта напрямую. Просмотрите их контактную информацию на веб-сайте и свяжитесь с ними о соответствующей странице. Если контактная форма отсутствует, Вы можете попытаться связаться с веб-сайтом в социальных сетях.
Свяжитесь со своим интернет-провайдером
Если Вы можете подтвердить, что данный веб-сайт работает для других, но не для Вас, то возможно, что публичный IP-адрес Вашего интернет-провайдера, предоставленный Вам (или всему интернет-провайдеру) заблокирован по какой-либо причине. Вы можете попытаться связаться с ними и сообщить им о проблеме. Это не очень вероятное решение, но они могут помочь.
Источник: guidepc.ru