24

我想在 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

请建议如何解决这个问题

4

16 回答 16

46

来源不匹配通常是由于在API 项目控制台中未正确设置 Javascript 来源。您需要确保 Javascript 源与您的请求来自的域以及您在登录后将用户返回到的域相匹配。

更多详细信息可以在“创建客户端 ID 和客户端密码”部分的开发人员文档中找到。

注意:这里的一个常见错误是为 http:// 添加 JavaScript 来源,而不是 https://(反之亦然)。如果您想允许用户从两者访问您的网站,那么您需要在 javascript 控制台中列出两者。

注意(感谢 Bethel Goka):如果用户访问您的网站时 url 中出现端口号,您必须在 javascript 源中包含服务器的端口号。

于 2013-05-31T09:16:10.790 回答
8

它通过删除“www”对我有用。从谷歌控制台。我只是使用http://example.com并且它工作...

于 2014-08-27T06:22:14.490 回答
5

对于 VS 用户:
打开项目的属性并获取项目 URL:

在此处输入图像描述
这是您的 Javascript 起源

更改也重定向 URI。它应该是你的起源+“/oauth2callback”
对我来说:

在此处输入图像描述

于 2015-04-02T14:42:55.383 回答
4

(错误有你的答案)

需要在 google 控制台 api 中设置 javascript origin 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
于 2014-03-18T20:45:22.353 回答
3

我的默认 javascript 来源是https://www ,我的网站不支持https:// ,我包括在内,它可以工作。http://www. http:// https://www.https://

于 2014-11-16T02:36:31.530 回答
2

对 Lee 的回答稍加补充:在 JavaScript 来源中同时列出 URL 的www.whatever.extwhatever.ext形式可能会消除错误。这就是我的应用程序的诀窍。

于 2014-02-25T04:58:39.043 回答
2

我做了一件愚蠢的事情,需要几分钟才能解决,所以我想我会发出警告,以防其他人落入这个陷阱。

在控制台中,当显示来源时,“重定向 URI”位于“Javascript 来源”上方。当您打开编辑窗格时,情况正好相反,因此如果您不注意,您可以将您的来源粘贴到 Redirect URIs 字段中,然后...。

于 2014-05-20T10:15:58.210 回答
2

如果您的客户端 ID、客户端密码和您的 javascript 来源 url 正确,您可能需要检查您使用的端口是否与您为 javascript 来源输入的 url 完全相同。我错误地输入了一位数字:e,g localhost:888 而不是 localhost:8888 并得到了那个错误,因为我的 javascript 起源是 localhost:8888 而不是 888

于 2013-10-29T11:01:23.850 回答
2

导致此错误的最常见疏忽是忘记在 App Credentials 仪表板的同意设置中添加 HTTP 和 HTTPS 来源。

要修复,请转到https://console.cloud.google.com/apis/credentials?project=YOUR-APP-ID

如果您已经创建了OAuth 2.0 客户端 ID ,请选择它。如果没有,则必须为您的源创建一个新的客户端 ID。

Authorized JavaScript origins下,为您的应用添加 https 和 http 源(如果没有同时添加)。

于 2016-08-22T12:55:14.643 回答
2

1:打开项目的凭据页面。

2:在客户端 ID 列表中双击您的 OAuth 2.0 Web 客户端。

3:确保在 Web 客户端 ID 表单中,当您在本地运行服务器时,将 Authorized JavaScript origins 字段更改为http://localhost:8080 。远程运行时添加对应的appspot server url。

于 2016-05-13T16:39:38.920 回答
1

从您的浏览器中退出所有谷歌服务。

于 2014-07-04T10:43:45.967 回答
1

我同样遇到了 google + api 登录的问题。我得到了Error:origin_mismatch并且与问题中的细节相同..我的 javascript 凭据有http://localhost:4567 但是当我运行 python 文件时打开链接为0.0.0.0:4567这基本上是一个本地主机,但是当我将浏览器中的 url 更改为http://localhost:4567现在错误已被删除..我的应用程序能够获取 OAuth 框.. 和所有顺利!!!这件事消除了我的错误......请让我知道我是否正确,因为我刚刚开始学习如何使用 API

于 2015-01-17T09:41:42.670 回答
0

您必须在此处阅读开发人员指南

https://developers.google.com/analytics/devguides/reporting/embed/v1/devguide

祝你好运 !

于 2015-01-02T12:00:32.723 回答
0

请检查您在谷歌控制台中为您的 WEB 应用程序/Android 设置的原始 url

并检查 http 或 https,因为您的网站无法在 https(一般网站)上运行。

于 2014-02-27T08:17:41.280 回答
0

我在尝试使用“Google Play 游戏服务管理演示”时遇到此错误,这是因为 URL 中缺少“www”

于 2015-05-18T09:48:53.813 回答
0

我通过在 google 控制台中更改 JavaScript 来源和重定向 URI 来修复它http://0.0.0.0:4567http://localhost:4567记住/oauth2callback在重定向 URI 之后添加并将浏览器上的 url 更改为http://localhost:4567

于 2016-11-28T04:02:30.500 回答