Где мне разместить код, возвращенный Google oAuth после того, как я предоставлю доступ к установленному приложению, используя PHP?

Это было кошмаром, чтобы получить право в течение прошлых нескольких дней. Сначала я боролся с ошибками redirect_uri_mismatch или ошибочными запросами, но теперь, когда мне показалось, что я прибил его, я получаю это сообщение от Google после нажатия кнопки «Разрешить» на экране согласия:

Пожалуйста, скопируйте этот код, переключитесь на свое приложение и вставьте его туда

Куда именно мне нужно вставить этот код? Я использую PHP на веб-сервере, я использовал тип приложения «Другой» при создании учетных данных, потому что я прочитал, что это предпочтительнее, если я не хочу, чтобы мои пользователи продолжали получать эту ссылку авторизации.

Кажется, я не могу найти конкретный пример того, как это сделать, я добился того, чтобы он работал так далеко, хватая кусочки здесь и там, но этот, который я просто не могу понять.

https://gist.github.com/andruxnet/0f7fe237730c13846a690da12935a708

Я использую файл client_secret.json, который я скачал с экрана учетных данных Google oAuth, он выглядит следующим образом:

{"installed":{"client_id":"xxxxxxxxxxxxxxx.apps.googleusercontent.com","project_id":"my-project-id","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://accounts.google.com/o/oauth2/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"xxxxxxxxxxx","redirect_uris":["urn:ietf:wg:oauth:2.0:oob","http://localhost"]}}

Кто-нибудь знает, что еще мне нужно сделать или куда поместить этот код, возвращенный из Google после экрана согласия?

Спасибо

0

Решение

Я вижу дезинформацию, иди и проверь эту ссылку:

https://developers.google.com/api-client-library/php/auth/web-app#example

Там у вас есть много примеров того, что вы запрашиваете, в любом случае код, который вы получаете от Google, это код авторизации, который позволяет вам аутентифицировать клиента ( Google_client->authenticate(AuthCode) созданный в вашем приложении php, если быть более точным), после этого вы можете начать использовать их сервисы с Accesstoken или RefreshTokens в зависимости от того, какой тип соединения вы запрашивали для генерирования перми.

Я надеюсь, что этот комментарий немного поможет вам в кошмаре разработки Google Services 🙂

1

Другие решения

Хотя в этом ответе не используется PHP, я все же думаю, что стоит добавить его здесь, поскольку это единственный полный рабочий пример обновления видео на YouTube без отображения экрана согласия для пользователя, по крайней мере, я не смог найти конкретный рабочий пример.

Я закончил тем, что использовал библиотеку Javascript, так и не смог найти ни одного законченного примера, даже в документах библиотеки или Google, потребовалось взять кусочки кода тут и там и соединить точки.

Первое, что нужно сделать, это создать учетные данные, мы делаем это, перейдя в консоль разработчика Google, и в разделе Учетные данные мы создаем новый идентификатор клиента OAuth, выбираем веб-приложение и добавляем наш домен в поле «Авторизованные источники JavaScript», например. http://www.example.com

Единственная информация, которая нам понадобится из этих учетных данных, — это идентификатор клиента, поэтому мы копируем его и вставляем в файл Javascript ниже.

Вот часть HTML, где мы также загружаем библиотеку API:

<input type="button" id="make-private" value="private" /> Make video private
<input type="button" id="make-public" value="public" /> Make video public
Current privacy status: <span id="current-status"></span>
<script type="text/javascript" src="update.js"></script>
<script src="https://apis.google.com/js/client.js?onload=googleApiClientReady"></script>

Это код Javascript, чтобы сделать это — update.js в приведенном выше коде, не забудьте обновить с вашим собственным идентификатором клиента: https://gist.github.com/andruxnet/2efe7898f5cd9722e0d42b71fce5d183

Соответствующий код Javascript, как только мы выясним, какая часть аутентификации может быть найдена в нескольких местах в Интернете, является следующим фрагментом кода:

// we first grab the video resource from Youtube, using youtube video id
var request = gapi.client.youtube.videos.list({
id: 'youtubevideoid',
part: 'status'
});

// once we get the video resource, we update the status and
// run the update method
request.execute(function(response) {
// since we looked for a video id, we only got one result - the first
// and only item in the array of result items
video = response.result.items[0];

// set the privacy status to one of public, private or unlisted
video.status.privacyStatus = 'private';

// prepare the update with the new privacy status
var updateRequest = gapi.client.youtube.videos.update({
part: 'status',
fields: 'status',
resource: video
});

// execute the update - I didn't see this part in the API documentation,
// I found it somewhere else in SO as part of another question, although
// I should've figured it out by looking at the first list() method above
updateRequest.execute();
});

Я надеюсь, что это сэкономит кому-то время в будущем, так как это спасло бы мое собственное.

ура

0

По вопросам рекламы [email protected]