Ответ 1
Redirect_uri (urn: ietf: wg: oauth: 2.0: oob) применим только к тем идентификаторам клиентов Google, которые были созданы для установленных приложений. Вы можете перейти на консоль и создать новый идентификатор клиента этого типа.
Я создаю и авторизую токен OAuth согласно этой веб-странице: https://code.google.com/p/google-mail-oauth2-tools/wiki/OAuth2DotPyRunThrough
Но я получил эту ошибку: redirect_uri_mismatch.
The redirect URI in the request: urn:ietf:wg:oauth:2.0:oob did not match a registered redirect URI
from_login=1
cookie_policy_enforce=false
scope=https://mail.google.com/
response_type=code
access_type=online
redirect_uri=urn:ietf:wg:oauth:2.0:oob
as=-80019291b2cb8ed
display=page
pli=1
client_id=......
authuser=0
hl=en
Я подумал, что это может быть полезно: Авторизация Google OAuth 2 - Ошибка: redirect_uri_mismatch
Но когда я пытаюсь зарегистрировать URL-адрес перенаправления на мою консоль, мне сказали, что URL-адрес недействителен.
Redirect_uri (urn: ietf: wg: oauth: 2.0: oob) применим только к тем идентификаторам клиентов Google, которые были созданы для установленных приложений. Вы можете перейти на консоль и создать новый идентификатор клиента этого типа.
На всякий случай, если вы используете кнопку javascript Google+ (с веб-приложением), вы должны поместить postmessage
вместо фактического URI. Мне нужно почти целый день, чтобы понять это, потому что документы Google явно не выдерживают этого по какой-то причине.
Когда вы регистрируете свое приложение в https://code.google.com/apis/console
и
введите идентификатор клиента, вы получите возможность указать один или несколько перенаправлений
URIs. Значение параметра redirect_uri
в вашем URI авторизации должно
точно соответствуют одному из них.
Обратите внимание, что значение "redirect_uri" запроса Token должно совпадать с значением "redirect_uri" запроса авторизации.
Для моего веб-приложения я исправил свою ошибку, написав
instead of : http://localhost:11472/authorize/
type : http://localhost/authorize/
Для тех, кто все еще в тупике с этой проблемой, вы должны установить "Платформа" в "Нативный (Windows Mobile, Blackberry, рабочий стол, устройства и т.д.)" при регистрации своего приложения в Google Cloud Console, он не позволит вам использовать "urn: ietf: wg: oauth: 2.0: oob" в качестве URI перенаправления.
Потеряно 4 или 5 часов с этим... используйте "postmessage" как значение параметра, а не реальное перенаправление Uri...
$client->setRedirectUri('postmessage');
В моем случае вместо создания веб-приложения я просто выбрал Other in: Идентификатор клиента OAuth > Другое
и т.д.
2015July15 - рабочий вход начал вызывать ошибку 400 с помощью Error: redirect_uri_mismatch
Я разместил решение по аналогичному SO ВОПРОСУ: изменила загрузку script на
<script src="https://apis.google.com/js/client:platform.js?onload=startApp></script>