Я получаю сообщение об ошибке «Требуется токен», хотя опция маршрута уже включена, но все же она не работает.
с помощью этой библиотеки: https://github.com/ДжоДоусон/youtube
не могли бы вы помочь мне решить эту проблему?
class VideoController extends BaseController {
public function __construct(){
}
public function store(Request $request){
$video = Youtube::upload($request->file("video")->getPathName(), [
'title' => 'My Video',
'description' => 'This video is uploaded through API.',
'tags' => ['api', 'youtube'],
]);
return $this->sendResponse($video);
}
}
привет, братан, твоей информации недостаточно, пожалуйста, прочитай stackoverflow.com/help/как спросить, чтобы задать лучший вопрос с более подробной информацией
вы используете пакет github.com/joedawson/youtube? если да, вы установили идентификатор клиента и секрет клиента?
@user1669496 user1669496 не могли бы вы взглянуть на код, пожалуйста.
@Ali Да, я включил их (.env)






В соответствии с документацией этого пакета вам необходимо выполнить эти шаги, потому что у вас могут быть проблемы с refresh_token (я думаю, у вас нет токена в вашей базе данных, который должен быть создан после входа в Google)
Важно, прежде чем вы начнете загружать видео, вы подтвердили, что у вас есть refresh_token в вашей базе данных, в противном случае эти шаги должны быть полезными.
1- Удалите все свои токены в файле таблица youtube_access_tokens.
2- Включить маршруты в youtube.php
3- Повторная аутентификация с Google
4- Проверьте свой таблица youtube_access_tokens и найдите максимальное значение недавний токен.
5- Проверьте токен и убедитесь, что refresh_token существует.
6- Отключить маршруты аутентификации в конфиг/youtube.php
вкратце, для создания токена вам нужно посетить свой консоль Google и добавить свой URL-адрес в качестве обратного вызова (localhost). Затем в своем приложении посетите http://локальный:8000/youtube/аутентификация — вы будете перенаправлены в Google и вам будет предложено войти в систему. Это когда вы получите токен, и тогда вы можете больше не увидеть эту ошибку!
(шаг 3-...-6), но как реализовать эти шаги в Laravel API, потому что я не могу перенаправить в API
@AlgoVR прочитай добавленный абзац, братан! и для последнего шага вы должны установить false в этом файле конфигурации
@AlgoVR, что случилось?! Вы решили это? спросите меня о любой проблеме, с которой вы столкнулись
Я согласен с вами, но на самом деле я хочу выполнить эти шаги в API, не перенаправляя пользователя!
я получил эту ошибку: Ошибка: redirect_uri_mismatch, когда я пытаюсь открыть этот URL: локальный хост: 8000/youtube/аутентификация
@AlgoVR не нужно каждый раз перенаправлять пользователя, просто один раз вам нужно авторизовать свое приложение с созданием токена, как я вам сказал
Я вижу, @Ali, у тебя есть идеи, с кем я могу проверить это на Почтальоне?
@AlgoVR явно означает, что у вас нет URL-адреса перенаправления или он неправильный, поэтому перейдите в консоль своего проекта и посмотрите в разделе «Доступ к API». Там вы должны увидеть свой идентификатор клиента и секрет клиента, а также список URI перенаправления. Если нужного URI нет в списке, нажмите «Изменить настройки» и добавьте URI в список, и это займет несколько минут.
@AlgoVR не забудьте redirect_uri в файле конфигурации, который должен совпадать с URI, который вы ввели в разработчике консоли Google.
Я получил ошибку, вы можете проверить это, пожалуйста: конфиг/youtube.php : i.stack.imgur.com/z8G19.pngID клиентов OAuth 2.0 : i.stack.imgur.com/e9Cyo.png
@AlgoVR просмотрите ответ! Ошибка требуется токен доступа связана с тем, что у вас нет ключа обновления в таблица youtube_access_tokens, я прав?! есть ли у вас какая-либо запись в этой таблице? поэтому, если не по маршруту /youtube/auth, вы должны быть перенаправлены в google и войти в систему, а затем при перенаправлении в ваше приложение токен будет вставлен в эту таблицу для ошибки redirect_uri_mismatch вы должны установить URI перенаправления приложения как в Google, так и в конфигурационном файле (что не нормально, установите маршрут, который не был установлен ранее) для установки в youtube.com/watch?v=OCLwdwx9xUs google watch
круто, братан, теперь все работает !!, но я могу справиться с аутентификацией Google с помощью React.js, а API просто загружает видео. но я думаю, что в этом случае мне нужно сначала сохранить access_token, получив его из React, в конце API проверит только access_token, существует ли он в базе данных или нет, без перенаправления через API. это имеет смысл !!
Да, да, я сделаю, как я могу получить информацию о пользователе, например: ( getUserByToken() )
^_^, @Ali любое предложение о том, как получить информацию
@AlgoVR, пожалуйста, спрашивайте подробнее! какой пользователь! какой жетон?! я не понял цели
хорошо, @Ali Я имею в виду токен, является ли access_token хранящимся в базе данных более указанной таблицей youtube_access_tokens, таким образом я могу получить информацию о пользователе через там access_token или нет?
какие-либо предложения !!
@AlgoVR, кстати, я не думаю, что есть способ получить информацию о пользователе, это как-то конфиденциально! но вы можете получить его из промежуточного программного обеспечения, которое вы устанавливаете для каждого входа пользователя, или попросить своего пользователя отправить свою информацию перед авторизацией... для этой новой проблемы задайте новый вопрос
Большое спасибо за вашу помощь, и это было лучшее решение. ^_^
Можете ли вы показать какой-нибудь код, чтобы у нас было представление о том, как помочь? Я предполагаю, что вам нужно выполнить шаги в Developers.google.com/youtube/v3/guides/auth/…, в частности, в разделе «Получение токенов доступа OAuth 2.0».