Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   VK - разместить запись на стену (https://javascript.ru/forum/misc/32638-vk-razmestit-zapis-na-stenu.html)

lol4eg 24.10.2012 09:55

VK - разместить запись на стену
 
Хочу сделать кнопку "разместить сообщение в вк", создал приложение сайт, по примерам сделал небольшой код, но не получается нормально работать с ним. После нажатия на "Разместить" окно с подтверждением появляется раз через раз и вообще не совсем понятно по каким условиям. Единственное что заметил, если после строчки VK.Auth.login поставить алерт, окно с подтверждением разместить запись на стене появляется всегда. Помогите разобраться в чем проблема.

<script type="text/javascript" src="/js/jquery.js"></script>
<script src="http://vkontakte.ru/js/api/openapi.js" type="text/javascript"></script>
<script type="text/javascript"> VK.init({apiId: 7777, onlyWidgets: true}); </script>

<script type="text/javascript">

    function authInfo(response) {
        if (!response.session) {
            alert('Необходимо войти с помощью ВКонтакте.');
            return false;
        }

        VK.Api.call('wall.post', {
            message: 'test text ',
            }, function(r) {    
                if (r.error) {
                    console.log(r.error);
                    if (r.error.error_code == 10007) {
                        alert('Для участия в акции необходимо разместить запись на стене.');
                    }               
                    if (r.error.error_code == 20) {
                        alert('Произошла неизвестная ошибка, пожалуйста повторите еще раз.');
                    }               
                    if (r.error.error_code == 14) {
                        alert('Произошла неизвестная ошибка, повторите поже.');                 
                    }               
                    return false;
                }           
                alert('Успешно размещено!');
        });
    }

    $(document).ready(function() {

        $('#join').click(function() {

            VK.Auth.login(authInfo,1);
           // alert(1);
        });
    });

</script>

<a href="#" id="join">Разместить</a>

Riim 24.10.2012 10:19

Пользователь может запретить в настройках срать на стену из приложений, в этом случае окно подтверждения появляется и сразу исчезает.

lol4eg 24.10.2012 11:30

Я пробовал на своих нескольких аккаунтах, в настрояках срать на стену могут все, однако ситуация такая же.

Riim 24.10.2012 13:33

Может это:

http://vk.com/developers.php?oid=-1&p=VK.init

nameTransportPath - обязательный

http://api.vkontakte.ru/xd_receiver.html
http://vkontakte.ru/js/api/xd_receiver.js

lol4eg 25.10.2012 07:29

Не помогло, ситуация не изменилась.

Riim 25.10.2012 14:46

Цитата:

message: 'test text ',
лишняя запятая, хотя у меня и с ней работает. А приложение уже прошло модерацию?

lol4eg 26.10.2012 00:02

Почему она лишняя ? Проверку никакую приложение не проходило, но такая же проблема даже на акке владельца приложения. Да и там есть только добавить в каталог и пройти проверку, думаю оно может спокойно функционировать и без этого. Это сторонний сайт а не iframe приложение.

Думаю проблема кроется в VK.Auth.login, можно просто без него в onClick вызвать wall.post() и он будет вызываться, но тогда если пользователь не будет автоматизирован в вк он не поймет в чем дело и не будет той красивой формы с логином и паролем...

-----------

Вообще, даже пример предоставленный в примере документации http://vk.com/developers.php?oid=-1&p=VK.Auth работает как то не правильно.

//  alert('ok');
             
    VK.Auth.login(function(response) {
       
      if (response.session) {
        /* Пользователь успешно авторизовался */
        alert(1);
        if (response.settings) {
          /* Выбранные настройки доступа пользователя, если они были запрошены */
          alert(2);
        }
      } else {
        /* Пользователь нажал кнопку Отмена в окне авторизации */
        alert(3);
      }
    });


Алертов никаких не выводит, но опять же, если перед этим вывести что то, например alert('ok') то один из алеротов уже вылетит. Что я не правильно делаю, неужели никто не знает ?

lol4eg 26.10.2012 14:00

Выяснилось еще такая особенность, пример выше работает нормально во всех браузерах кроме firefox, версия в которой проверял - 16.0.1.

Белобрыс 23.02.2013 14:52

тема открыта?
 
в чем может быть проблема
у меня прост получается кнопка "разместить"
нажимаю и ничего не происходит.


Часовой пояс GMT +3, время: 04:09.