Open ID VK на всех страницах.

Создал рядом с ссылкой ВОЙТИ, кнопку ВКОНТАКТЕ, сделал для неё ссылку
<a href="javascript: openid_vk()" class="button"></a>
, и в шапке добавил
<script src="http://vkontakte.ru/js/api/openapi.js" type="text/javascript" charset="windows-1251"></script>


Кнопка не функционирует. Что забыл, что сделал неправильно?

PS на странице LOGIN\OPEN ID всё входит нормально.

9 комментариев

avatar
вот этот код работает отлично

{literal}


vkontakte




{/literal}
avatar
{literal} 
<div id="vk_api_transport"></div>
<script src="http://vkontakte.ru/js/api/openapi.js" type="text/javascript" charset="windows-1251"></script>
<div class="openid-block">
<form method="post" action="http://ваш домен/login/openid/enter/" name="fopenid" id="openid_form">
<div class="openid-services">
			<a href="javascript: openid_vk()"><img src="http://ваш домен/plugins/openid/templates/skin/default/img/openid_vk.png" alt="vkontakte" width="84px" height="21px" /></a>
</form>
</div>
<script language="JavaScript" type="text/javascript">
var sVkTransportPath='/plugins/openid/include/xd_receiver.html';
var iVkAppId='ваш id';
var sVkLoginPath='http://ваш домен/login/'+'openid/vk/';

	function getEl(id) {
		return document.getElementById(id);
	}

	function openid_vk() {		
		VK.Auth.login(null,VK.access.FRIENDS);
	}
		
	VK.init({
		apiId: iVkAppId,
		nameTransportPath: sVkTransportPath
	});
	
	VK.Observer.subscribe('auth.login', function(response) {
		window.location = sVkLoginPath;
	});
		
</script>
</div>
{/literal} 	
avatar
Спасибо большое! Работает )))
avatar
Хотя у меня не работает кнопка выход…
avatar
Кнопка выход у меня тоже как-то неправильно работает. Нажимаю выйти, он выходит, а потом перезагружается и снова входит…
avatar
Подскажите пожалуйста куда этот код вставить, чтобы аналогичную кнопку получить?
avatar
Вставляй этот код в место где должна быть кнопка
avatar
вот такая ошибка: Open API security breach: мойсайт.кз Как избавиться?
avatar
Странно вообщем.
Сделал кнопку на главной и на регистрации (/registration) — код абсолютно одинаковый — на странице регистрации авторизация через openid(vk) работает, а на главной — нет. Ну прям мистика. Также раз на раз не приходится, иногда работает на хроме, в отличие от оперы — там постоянно работает.

Изначально из всего openid хотел сделать только одну кнопочку (вконтакте) и чтобы после нажатия сразу можно было бы авторизоваться…

вот код:

<div id="vk_api_transport"></div>
<script src="http://vkontakte.ru/js/api/openapi.js" type="text/javascript" charset="windows-1251"></script>

<div class="openid-block">

<form method="post" action="http://сайт.ru/openid/enter/" name="fopenid" id="openid_form">
<div class="openid-services" style="text-align:center;  position: absolute;   right: 90px; top: 80px;">
  
 <span style="font-size:16px;"><b>или</b></span>   <a href="javascript: openid_vk()"><img src="/templates/skin/мойскин/images/vk.png" alt="vkontakte" width="84px" height="21px"  /></a>
 </div>
</form>
</div>
		
{literal}
<script language="JavaScript" type="text/javascript">
var sVkTransportPath='/plugins/openid/include/xd_receiver.html';
var iVkAppId='номерid';
var sVkLoginPath='http://сайт.ru/login/'+'openid/vk/';

        function getEl(id) {
                return document.getElementById(id);
        }

       function openid_vk() {		
		VK.Auth.getLoginStatus(function(response) {
			if (response.session) {
				window.location = sVkLoginPath;
			} else {
				VK.Auth.login(function(response) {
					if (response.session) {
						window.location = sVkLoginPath;
					}
				},VK.access.FRIENDS);				
			}
		});
	}
                VK.init({apiId: iVkAppId, nameTransportPath: sVkTransportPath});
</script>
{/literal} 


В опере обрабатывается хорошо, а хром тупит, даже на странице регистрации.
Проверил код, посмотрел маны на вконтакте — вроде все верно. Если кто вдруг решит сам сделать — отпишите решение пожалуйста.
  • Mmka
  • 0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.