API Vkontakte

123 4
Lord Maverik
На сайте с 15.04.2003
Offline
471
4582

В общем уже совсем отчаялся, и голова набекрень от этого Вконтакте и его API.

Цель:

1. Вход на сайт через вконтакте и получение данных о юзере

2. Постинг на стену юзера информации о его действиях на сайте, например его коммент.

Сначала делал через JS OPEN API. Войти получается, инфу о пользователе получаю все ок.

Потом сделал тоже самое, но уже средствами php и https://oauth.vkontakte.ru/.

Также все ок.

Перешел к этапу постинга на стену. Через PHP тут же был большой облом, в виде сообщения, что данный метод только для stand-alone приложений. Пришлось вернуться к работе с JS API.

Далее у меня пошли непонятки. Постинг возможен для Flash и IFrame.

Как оказалось, что Flash, что Iframe приложения работают только непосредственно внутри самой системы (сайта) Vkontakte.

А есть ли хоть какая-то возмоность постить на стену пользователя со своего сайта при его авторизации там? Например каким образом из ЖЖ посты копируются мне на стену? Как например хабрхабр ведет ленту новостей на своей странице?

RedMall.Ru (https://redmall.ru) - Товары из Китая (Таобао, Tmall) с проверкой качества, скидка для форумчан 7% Партнерская программа 2 уровня: 5% + 5%. Подробнее. (https://redmall.ru/about/partner/)
Infelix
На сайте с 19.01.2012
Offline
3
#1

вот тут вроде как подробно описана работа с вконтактовым АПИ.

Почитайте, может найдете ответы на свои вопросы...

infelix.ru (http://infelix.ru) - заметки о Extjs, Zend Framework, SEO...
Lord Maverik
На сайте с 15.04.2003
Offline
471
#2

Эту статью я видел, даже в закладки занес. Проблема в том, что это работа не с AP, а эмуляция юзера, который якобы залогинился через бразуер и сам отправил сообщение на стену себе.

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

rtyug
На сайте с 13.05.2009
Offline
263
#3

тут ковыряться таки придется не мало... :)

Спалил тему: Pokerstars вывод WMZ, etc на VISA 0% или SWIFT + Конверт USD/GBP,etc (net profit $0,5 млрд) (https://minfin.com.ua/blogs/94589307/115366/) Monobank - 50₴ на счет при рег. тут (https://clck.ru/DLX4r) | Номер SIP АТС Москва 7(495) - 0Ꝑ, 8(800) - 800Ꝑ/0Ꝑ (http://goo.gl/XOrCSn)
Lord Maverik
На сайте с 15.04.2003
Offline
471
#4
rtyug:
тут ковыряться таки придется не мало...

крайне дельное и информативное замечание....

Sveta Prokopeva
На сайте с 10.05.2006
Offline
99
#5

JS авторизация это полная ерунда, не используйте её. Она очень ограничена и работа с ней не логична. Используйте авторизацию с использованием приложения. Просите у пользователя права какие вам нужны, и будет вам счастье.

Если по шагам, то:

1) Нужно закинуть пользователя на страничку

http://api.vkontakte.ru/oauth/authorize?client_id=VK_APP_ID&scope=offline&redirect_uri=http://localhost/login/vk&response_type=code

2) После этого получаем токен

https://api.vkontakte.ru/oauth/access_token?client_id=VK_APP_ID&client_secret=VK_SECRET_KEY&code=$code

3) Получаем общую информацию о пользователе

https://api.vkontakte.ru/method/getProfiles?uid=$user_id&fields=first_name,last_name,photo,bdate,sex&access_token=$token

4) Постим на стену, постим фотки всё что нужно, подробно описано в документации апи. Не забываем просить права на то что хотим делать в первом пункте (scope)

---------- Добавлено 27.01.2012 в 13:51 ----------

Так, прошу прощения, по-моему, я выдала слишком много не нужной информации по причине не внимательного чтения первого поста )

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

Lord Maverik
На сайте с 15.04.2003
Offline
471
#6
Sveta Prokopeva:
Возможно у вас не получается запостить на стену потому что вы не просите права доступа в любое время суток? Или не получается запостить даже когда пользователь онлайн?

Пробовал и с offlain и с просто wall будучи в сети, по всякому пробовал. Но получаю при попатке работать с методом wall.post сообщение, что этот метод только для stand alone приложений. Собственно и все :(

md5by
На сайте с 30.12.2011
Offline
68
#7

Lord Maverik, скинь пример запроса как ты на стену хочешь кинуть, вызываешь ли ты после метода wall.savePost внешний метод saveWallPost ?

Lord Maverik
На сайте с 15.04.2003
Offline
471
#8

Токен получен, все ок. Далее вызов:

Вызов:


$url = 'https://api.vkontakte.ru/method/wall.post?owner_id='.$obj->vk_id.'&message='.urlencode('Тестовая запись').'&access_token='.$obj->token;

И ответ:


{"error":{"error_code":20,"error_msg":"Permission to perform this action is denied for non-standalone applications","request_params":[{"key":"oauth","value":"1"},{"key":"method","value":"wall.post"},{"key":"owner_id","value":"xxxxxxxx"},{"key":"message","value":"Тестовая запись"},{"key":"access_token","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}]}}
Sveta Prokopeva
На сайте с 10.05.2006
Offline
99
#9

Да, похоже нельзя. Не получается запостить ничего.

В саппорт пробовали писать? Если да, то что говорят?

Dreammaker
На сайте с 20.04.2006
Offline
569
#10

У нас программер тоже пытался несколько дней что-то придумать, но глухо, но в проекте нужно просто постить на стену группы, так что ограничимся скорее всего просто заходами с помощью curl - правда, не нравится то, что нужно будет менять код если что-то поменяется на странице вконтакте.

123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий