2014-01-14 3 views
4

Я разрабатываю сайт сообщества для своей новой мобильной игры, и я пытаюсь добавить в него указатель google plus.Google plus кнопка входа в систему не отображается, когда онлайн


Меры, принятые в ходе реализации:

-> Круги this разработчиков Google учебник

HTML код кнопки:

 <span id="signinButton"> 
     <span 
      class="g-signin" 
      data-callback="onSignInCompleted" 
      data-clientid="<myID>.apps.googleusercontent.com" 
      data-cookiepolicy="single_host_origin" 
      data-requestvisibleactions="http://schemas.google.com/AddActivity" 
      data-scope="https://www.googleapis.com/auth/plus.login"> 
     </span> 
    </span> 

Javascript код загрузки: (как раз перед закрытием тела)

<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> 

Проблема:

-> Реализация отлично работает в локальном хосте

-> Реализация не работает в сети (т.е. загружено на сервер)


Интернет страница странное поведение:

-> Кнопка не получает визуализации

-> Подписанный обратного вызова не дозвонились


Мое веб-приложение OAuth 2.0 javascript происхождения:

https://fcouceiro.com 
https://www.fcouceiro.com 
http://www.fcouceiro.com 
http://fcouceiro.com 
http://meatify:8888 

В настоящее время я использую fcouceiro.com как источник, но идея заключается в использовании субдомена meatify.fcouceiro.com после решения этой проблемы.


UPDATE: после некоторых экспериментов я обнаружил, что иногда (как в первый раз вы посещаете страницу) это получить визуализации (кнопка). Поэтому я думаю, что проблема может заключаться в том, что скрипт загружается после html, например. Поскольку я использую функцию загрузки jQuery для загрузки html-страницы, содержащей кнопку входа в систему. И чем вызвана onload, и скрипт пытается найти мою кнопку, но она недоступна. Как вы думаете?

Вы можете найти мою страницу здесь: кодирование http://fcouceiro.com

Апи!

+0

Это может быть проблема с именем хоста. Я вообще не знаком с G +, но я знаю, что это часто происходит, особенно когда вы находитесь на Localhost – ilarsona

+0

Ghostery также НЕ блокирует что-либо, поэтому, скорее всего, он не найдет кнопку Google. –

+0

Что вы предлагаете? Я включил многие возможности имени хоста в исходное javascript проекта. – couceirof

ответ

7

Хорошо, ребята. Задача решена! Спасибо за вашу помощь. Вот решение (сложное ...):

Просто убедитесь, что javascript для кнопки входа google + загружен после того, как кнопка «загружена» (если вы используете метод визуализации html). Моя проблема заключалась в том, что моя кнопка входа была загружена функцией загрузки jQuery в div, и иногда эта функция занимает некоторое время для выполнения. К счастью, в этой функции есть аргумент обратного вызова, который я установил для загрузки g + js!

Еще раз спасибо!

0

Для всех, кто может запутаться в этом, data-cookiepolicy="single_host_origin" может быть причиной ваших проблем.

Просто попробуйте очистить куки или установить data-cookiepolicy="none" при разработке.

Более глубокое описание финиковой cookiepolicy можно найти здесь: https://developers.google.com/+/web/signin/reference

3

Для уточнения выбранного ответа:

В platform.js должен быть загружен, прежде чем вынести знак-на кнопке, для Например, в angularjs, вы можете просто использовать $ timeout для ожидания 1 сек.

Смежные вопросы