web-dev-qa-db-fra.com

Vous avez une erreur Origin_mismatch dans l'API de partage Google+

Je souhaite partager du contenu dynamique sur Google +. Pour cela je l'ai vérifié 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>

Mais lors de l'exécution, j'obtiens cette erreur

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

S'il vous plaît suggérer comment résoudre ce problème

23
user2439124

La non-concordance de l'origine est généralement due au fait que les origines Javascript ne sont pas correctement définies dans la console de projet API . Vous devez vous assurer que les origines Javascript correspondent au domaine d'où proviennent vos demandes et auquel vous renvoyez l'utilisateur après la connexion.

Vous trouverez plus de détails dans la documentation destinée aux développeurs dans la section "Création d'un ID client et d'un secret client" .

Remarque: une erreur courante consiste à ajouter des origines javascript pour http: // mais pas https: // (ou vice versa). Si vous souhaitez autoriser les utilisateurs à accéder à votre site à partir des deux sites, vous devez les répertorier dans la console javascript.

Remarque (merci Bethel Goka): Vous devez inclure le numéro de port de votre serveur dans les origines javascript si un numéro de port apparaît dans l'URL lorsque les utilisateurs accèdent à votre site.

46
Lee

Cela a fonctionné pour moi en supprimant "www." depuis la console google. J'ai simplement utilisé http://example.com et cela a fonctionné ...

8
user3981671

Pour les utilisateurs de VS:  
Ouvrez les propriétés de votre projet et obtenez l’URL du projet:

enter image description here
Ceci est votre Javascript Origins

Modifiez également les URI de redirection. Ce devrait être vos origines + "/ oauth2callback"
Pour moi:

enter image description here

5
Yuliia Ashomok

(L'erreur a la réponse pour vous)

devez définir javascript Origin dans Google Console 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
4
Yene Mulatu

Mon origine javascript par défaut est https://www, Mon site Web ne prend pas en charge https://, J'ai inclus http://www.http://https://www. et https://, cela fonctionne.

3
user3315198

Juste un petit ajout à la réponse de Lee: énumérer les formes www.w Whatever.ext et Whatever.ext de votre URL en origines JavaScript peut supprimer l'erreur. C'est ce qui a fait l'affaire pour mon application.

2
nydame

1: Ouvrez la page Informations d'identification pour votre projet.

2: Double-cliquez sur votre client Web OAuth 2.0 dans la liste d’ID client.

3: Assurez-vous que dans le formulaire d'ID de client Web, définissez le champ Origines JavaScript autorisées sur http: // localhost: 8080 lorsque vous exécutez le serveur localement. Lors de l'exécution à distance, ajoutez l'URL du serveur appspot correspondant. 

2
Vikas

Si votre identifiant client, votre secret client et votre URL d'origines javascript sont corrects, vous pouvez vérifier si le port que vous utilisez est exactement le même que l'URL que vous avez spécifiée pour les origines JavaScript. J'ai mal saisi le mien avec un chiffre: e, g localhost: 888 au lieu de localhost: 8888 et j'ai eu cette erreur parce que mon origine javascript était localehost: 8888 pas 888

2
Bethel Goka

J'ai fait une chose stupide qui a pris quelques minutes à résoudre, alors j'ai pensé poster un avertissement au cas où quelqu'un d'autre tomberait dans ce piège.

Dans la console, lorsque les origines sont affichées, les "URL de redirection" sont placées au-dessus de "origines Javascript". Lorsque vous ouvrez le volet d'édition, c'est l'inverse. Par conséquent, si vous n'y prêtez pas attention, vous pouvez coller vos origines dans le champ Redirect URIs et ....

2
kpg

L'omission la plus courante entraînant cette erreur consiste à oublier d'ajouter les origines HTTP et HTTPS aux paramètres de consentement du tableau de bord des informations d'identification de l'application.

Pour résoudre ce problème, accédez à https://console.cloud.google.com/apis/credentials?project=YOUR-APP-ID

Sélectionnez les identifiants client OAuth 2.0 si vous en avez déjà créé un. Sinon, vous devrez créer un nouvel identifiant client pour votre origine.

Sous Origines JavaScript autorisées, ajoutez les deux origines https et http pour votre application si vous n'aviez pas ajouté les deux.

2
Jasper Kinoti

Déconnectez-vous de tous les services Google à partir de votre navigateur.

1
vijay

J'ai eu cette erreur en essayant d'utiliser la "Démo de gestion des services de jeux Google Play" et c'était à cause de l'absence de "www" dans l'URL

0
Alberto Méndez

Je l'ai corrigé en changeant les origines JavaScript et les URI de redirection dans la console Google de http://0.0.0.0:4567 à http://localhost:4567, n'oubliez pas d'ajouter /oauth2callback après les URI de redirection et de modifier l'URL du navigateur en http://localhost:4567.

0
Phong Vy

Veuillez vérifier l'URL d'origine définie dans la console Google pour votre application Web/Android. 

et cochez http ou https car votre site ne fonctionne pas sur https (site général).

0
user3359503

Vous devez lire le guide du développeur ici

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

Bonne chance ! 

0
Ali Raza