Получил ошибку origin_mismatch в Google+ share api
Я хочу поделиться динамическим контентом с Google+. Для этого я проверил его https://developers.google.com/+/web/share/interactive#rendering_the_button_with_javascript
<head>
<script type="text/javascript">
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/client:plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
</script>
</head>
<body>
<button
class="g-interactivepost"
data-contenturl="http://www.pubandbar-network.co.uk/"
data-clientid="102180630313.apps.googleusercontent.com"
data-cookiepolicy="single_host_origin"> Share
</button>
</body>
Но при выполнении я получаю эту ошибку
Error: origin_mismatch
Request Details
scope=https://www.googleapis.com/auth/plus.login
response_type=code token id_token gsession
access_type=online
redirect_uri=postmessage
cookie_policy=single_host_origin
proxy=oauth2relay554026710
origin=http://www.pubandbar-network.co.uk
state=1995523240|0.4607792083184853
display=page
client_id=102180630313.apps.googleusercontent.com
authuser=0
Пожалуйста, предложите, как это исправить.
Ответы
Ответ 1
Несоответствие происхождения обычно вызвано тем, что исходные коды Javascript не установлены правильно в консоли API-интерфейс проекта. Вы должны убедиться, что происхождение Javascript соответствует домену, с которого поступают ваши запросы, и к которому вы возвращаете пользователя после входа.
Более подробную информацию можно найти в документации разработчика в разделе "Создание идентификатора клиента и клиента" .
Примечание. Общей ошибкой здесь является добавление javascript-истоков для http://, но не https://(или наоборот). Если вы хотите разрешить пользователям получать доступ к вашему сайту из обоих, вам необходимо указать оба в консоли javascript.
Примечание (спасибо Bethel Goka): вы должны указать номер порта вашего сервера в происхождении javascript, если номер порта отображается в URL-адресе, когда пользователи обращаются к вашему сайту.
Ответ 2
Он работал у меня, удалив "www". с консоли Google. Я просто использовал http://example.com, и он работал...
Ответ 3
Для пользователей VS:
Открыть свойства вашего проекта и получить URL-адрес проекта:
![enter image description here]()
Это ваш Javascript Origins
Изменить также URI перенаправления. Это должно быть ваше происхождение + "/oauth2callback"
Для меня:
![enter image description here]()
Ответ 4
(Ошибка имеет ответ для вас)
нужно указать начало javascript в консоли Google api As
origin=**http://www.pubandbar-network.co.uk**
scope=https://www.googleapis.com/auth/plus.login
response_type=code token id_token gsession
access_type=online
redirect_uri=postmessage
cookie_policy=single_host_origin
proxy=oauth2relay554026710
*origin=http://www.pubandbar-network.co.uk*
state=1995523240|0.4607792083184853
display=page
client_id=102180630313.apps.googleusercontent.com
authuser=0
Ответ 5
Мои исходные данные javascript по умолчанию: https://www
,
мой сайт не поддерживает https://
,
Я включил http://www.
http://
https://www.
и https://
он работает.
Ответ 6
Если ваш идентификатор клиента, секрет клиента и URL-адрес исходного кода javascript верны, вы можете проверить, точно ли тот порт, который вы используете, с URL-адресом, который вы вставляете для генерации javascript. Я ошибся одной цифрой: e, g localhost: 888 вместо localhost: 8888 и получил эту ошибку, потому что мои происхождение javascript было localhost: 8888 не 888
Ответ 7
Просто небольшое дополнение к ответу Ли: перечисляя как www.whatever.ext, так и любые другие формы вашего URL-адреса в исходном тексте JavaScript могут избавиться от ошибки. Вот что сделал трюк для моего приложения.
Ответ 8
Я сделал глупую вещь, на которую ушло несколько минут, чтобы решить, поэтому я подумал, что отправлю предупреждение, если кто-то другой попадет в эту ловушку.
В консоли, когда отображаются исходные данные, "Перенаправления URI" выходят выше "Источников Javascript". Когда вы открываете панель редактирования, это наоборот, поэтому, если вы не обращаете внимания, вы можете вставить свое происхождение в поле Redirect URI и....
Ответ 9
1: Откройте страницу учетных данных для вашего проекта.
2: Дважды щелкните на своем веб-клиенте OAuth 2.0 в списке идентификаторов клиентов.
3. Убедитесь, что в форме идентификатора веб-клиента измените поле "Авторизованные исходники JavaScript" на http://localhost:8080 при запуске сервера на местном уровне.
При запуске удаленно добавьте соответствующий URL-адрес сервера appspot.
Ответ 10
Наиболее распространенный надзор, приводящий к этой ошибке, заключается в том, чтобы забыть добавлять как HTTP, так и HTTPS-исходники в настройках согласия на панели инструментов учетных данных приложений.
Чтобы исправить ошибку, перейдите к https://console.cloud.google.com/apis/credentials?project=YOUR-APP-ID
Выберите идентификаторы клиента OAuth 2.0, если вы уже создали его. Если нет, вам нужно будет создать новый идентификатор клиента для вашего происхождения.
В разделе Авторизованные исходники JavaScript добавьте оба https и http originins для вашего приложения, если не добавили оба.
Ответ 11
Выйдите из всех сервисов google из своего браузера.
Ответ 12
У меня тоже была проблема для входа google + api. Я получал Ошибка: origin_mismatch, и такие же детали были там, как они есть в вопросе.. мои учетные данные javascript имели http://localhost:4567
но когда я запускаю файл python, он открыл ссылку как 0.0.0.0:4567, которая в основном является локальным хостом, но когда я изменил URL-адрес в браузере на http://localhost:4567 теперь ошибка была удалена.. и мое приложение смогло получить блок OAuth.. и все прошло отлично!!! эта вещь удалила мою ошибку... Пожалуйста, дайте мне знать, был ли я прав, потому что я только начал изучать, как использовать apis
Ответ 13
Пожалуйста, проверьте исходный url, установленный в консоли Google для вашего веб-приложения/Android
и проверьте http или https, потому что ваш сайт не работает на https (на общем сайте).
Ответ 14
Вы должны прочитать руководство разработчика здесь
https://developers.google.com/analytics/devguides/reporting/embed/v1/devguide
Удачи!
Ответ 15
У меня возникла эта ошибка, пытаясь использовать "Демо-версию для управления играми в Google Play Games", и это было из-за отсутствия "www" в URL
Ответ 16
Я исправил его путем изменения исходных кодов JavaScript и перенаправления URI на консоли Google от http://0.0.0.0:4567
до http://localhost:4567
, не забывая добавлять /oauth2callback
после перенаправления URI и изменять URL-адрес браузера на http://localhost:4567