我想在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
请建议如何解决此问题
答案 0 :(得分:46)
原因不匹配通常是由于API project console中未正确设置Javascript来源引起的。您需要确保Javascript来源与您的请求来自的域匹配,并在登录后返回给用户。
更多详细信息,请参阅"Create a client ID and client secret" section。
中的开发人员文档注意:这里常见的错误是为http://添加javascript原点而不是https://(反之亦然)。如果您想允许用户从两者访问您的站点,则需要在javascript控制台中列出这两者。
注意(感谢Bethel Goka):如果用户访问您的网站时网址中显示了端口号,则必须在javascript来源中包含服务器的端口号。
答案 1 :(得分:8)
通过删除&#34; www。&#34;它对我有用。来自谷歌控制台。我只是使用http://example.com而且它有用......
答案 2 :(得分:5)
对于VS用户:
打开项目的属性并获取项目网址
这是您的Javascript起源
还要更改重定向URI。它应该是你的起源+&#34; / oauth2callback&#34;
对我来说:
答案 3 :(得分:4)
(错误有答案)
需要在google console api中设置javascript来源
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
答案 4 :(得分:3)
我的默认javascript来源是 https://www
,
我的网站不支持 https://
,
我包括 http://www.
http://
https://www.
和 https://
,
它有效。
答案 5 :(得分:2)
如果您的客户端ID,客户端密码和您的javascript原始网址是正确的,您可能需要检查您使用的端口是否与您为javascript来源输入的网址完全相同。我错误输入了一个数字:e,g localhost:888而不是localhost:8888并且得到了该错误,因为我的javascript起源是localhost:8888而不是888
答案 6 :(得分:2)
对Lee的回答只是一点点补充:在JavaScript源代码中列出 www.whatever.ext 和 whatever.ext 形式的URL可能会消除错误。这就是我的应用程序的诀窍。
答案 7 :(得分:2)
我做了一件蠢事,花了几分钟才解决,所以我想我会发一个警告以防其他人陷入这个陷阱。
在控制台中,当显示原点时,“重定向URI”位于“Javascript origin”之上。当你打开编辑窗格时,它是相反的,所以如果你没有注意,你可以将你的起源粘贴在Redirect URIs字段中......
答案 8 :(得分:2)
1:打开项目的“凭据”页面。
2:在客户端ID列表中双击OAuth 2.0 Web客户端。
3:确保在Web客户端ID表单中,在本地运行服务器时将Authorized JavaScript origin字段更改为http://localhost:8080。 远程运行时添加相应的appspot服务器URL。
答案 9 :(得分:2)
导致此错误的最常见疏忽是忘记在App Credentials仪表板中的同意设置上添加HTTP和HTTPS来源。
要修复,请转到https://console.cloud.google.com/apis/credentials?project=YOUR-APP-ID
如果您已经创建了 OAuth 2.0客户端ID ,请选择 OAuth 2.0客户端ID 。如果没有,则必须为您的源创建新的客户端ID。
在授权的JavaScript来源下,如果未添加两者,请为您的应用添加https和http来源。
答案 10 :(得分:1)
从您的浏览器退出所有Google服务。
答案 11 :(得分:1)
我同样遇到了google + api登录的问题。我收到了错误:origin_mismatch ,并且问题中存在相同的详细信息..我的javascript凭据有 {{ 3}} 强> 但是当我运行python文件时,它打开链接为 0.0.0.0:4567 ,这基本上是一个本地主机,但是当我将浏览器中的URL更改为 http://localhost:4567 时错误已被删除..我的应用程序能够获得OAuth框..一切都很顺利!这件事删除了我的错误... 请让我知道我是否正确,因为我刚开始学习如何使用apis
答案 12 :(得分:0)
请检查google console中为您设置WEB应用程序/ Android
的原始网址并检查http或https,因为您的网站无法在https上工作(在一般网站中)。
答案 13 :(得分:0)
您必须阅读此处的开发人员指南
https://developers.google.com/analytics/devguides/reporting/embed/v1/devguide
祝你好运!
答案 14 :(得分:0)
我在尝试使用&#34; Google Play游戏服务管理演示&#34;时遇到此错误这是因为失踪&#34; www&#34;在网址
答案 15 :(得分:0)
我通过更改JavaScript来源并将Google控制台中的URI从http://0.0.0.0:4567
重定向到http://localhost:4567
来修复它,请记住在重定向URI之后添加/oauth2callback
并将浏览器上的网址更改为http://localhost:4567